Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

shell script acil yardım


Öne çıkan mesajlar

Mesaj tarihi:
biliyorum başlık saçma (içerik daha da saçma)
ama ödev yetiştirmem gerekiyor ve klasik bir türküm son ana bıraktım
o yüzden shell scriptten anlayan biri özelden mesaj atabilir mi 2-3 şey sormak istiyorum burayı kirletmeyeyim daha fazla.
Mesaj tarihi:
aslında halletim ama başka şekilde lakin halledemediğim şekline açıklık getirebilen çıkarsa şahane olur;

şimdi olay şu linux multiuser bir sistem olduğundan ps aux yazınca kullanıcılar ve yaptıkları işlemler pid leri, cpu usageları, memory usageları gibi bilgilerle geliyor ya ekrana yapmaya çalıştığım şey şuydu;

ps aux | awk '{ if ($1 == '$username') print "blablabla" }'

satırdaki username benim kullanıcıdan readle aldığım user name yani atıyorum kullanıcı root girince bu satır $1 kısmında yani user bölümündeki isimlerle root u karşılaştırcak eşitlik gelirse blablabla basıcak (normal hali çok kapsamlı da karışan kısım burası)

beceremediğim ve anlamadığım nokta bu şekilde match edemiyor olması yani acaba diyorum göremediğim bir parametre mi var arada o mu bozuyor işi

sonrasında şöyle çözdüm araya başka bir awk daha atarak grep gibi kullandım awk '/'$username'/' yazdım oldu ama yuakrdaki şekil neden çalışmadı bulamadım

???
Mesaj tarihi:
'{ if ($1 == '$username') print "blablabla" }'

Cunku alti cizili bolgeler overlap ediyordu.

-- da yazacagim bu degil. Illa awk la mi yap dediler size ? Ya da illa bir script mi yaz dediler ?

Yani ornegin "ps -aufffUroot" olmuyor mu ?
Mesaj tarihi:
sorun surada;
ps aux | awk '{ if ($1 == '$username') print "blablabla" }'

awk'dan sonra ' kullandigin icin icerideki $username degiskenin icerigi awk'a gecmiyor yani o if satirindaki deger oldugu gibi geciyor ('$username' olarak), shell e degiskenleri yorumlamasi icin izin vermelisin, su sekilde calisiyor;

ps aux | awk "{if ($1 == "$username") print "blablabla"}"

aslinda bu cirkin gozukuyor daha duzgune bulursam update ederim.

edit: yanlis cevap.
Mesaj tarihi:
sharky said:

'{ if ($1 == '$username') print "blablabla" }'

Cunku alti cizili bolgeler overlap ediyordu.


Anason said:
sorun surada;
ps aux | awk '{ if ($1 == '$username') print "blablabla" }'

awk'dan sonra ' kullandigin icin icerideki $username degiskenin icerigi awk'a gecmiyor yani o if satirindaki deger oldugu gibi geciyor ('$username' olarak), shell e degiskenleri yorumlamasi icin izin vermelisin, su sekilde calisiyor;

ps aux | awk "{if ($1 == "$username") print "blablabla"}"

aslinda bu cirkin gozukuyor daha duzgune bulursam update ederim.


:)
×
×
  • Yeni Oluştur...