Bir süre döngü yapmaya çalışıyorum. Bu döngü ya "yeniden deneyin ya da çıkmak için çıkış yazın" anlamsız yazarken ya da kullanıcı adını yazdıysa bir kullanıcı işaretlemelidir.Bash döngü sırasında
echo Please enter a user name to find.
read username
done_fn()
{
finger $username
exit 0
}
continue_fn()
{
echo 'try again or type exit to quit'
read exitvar
}
grep $username /etc/passwd >/dev/null
while [ $? -eq 0 ]
do
done_fn
done
exitvar=quit
until [ $exitvar = exit ]
do
continue_fn
done
while [ -u $exitvar ]
do
done_fn
done
Bu defa var her şeydir. Ne zaman tekrar deneyin ya da çıkmak için çıkış yazın sonra bir kullanıcı adı yazdığımda, sadece tekrar yankı olacaktır. Tekrar yankılanmak yerine, kullanıcıyı parmaklamak istiyorum. Pek çok yere baktım ve cevabı bulamıyorum.
Önceden teşekkür ederiz.
Aldığınız çıkışı paylaşabilir misiniz? Yanlış davranış göstermek için? –
Kabuk debug/trace özelliğini kullanmayı öğrenin ve set -vx' ve set + vx' ile kapanmak için problemli hatları çevirin. Kodunuzun görüntülendiğini görür ve ardından yürütülür. Önde + bulunan çizgiler, değişken adları için hangi değerlerin değiştirildiğini gösterir. Hata ayıklama modunda, tüm alıntılar, hata ayıklama/izleme işlevi tarafından tek tırnaklıya "kaynatılır". Sorunun ne olduğunu "grep" ile ve ardından "while" ile görmelisiniz. İyi şanslar! – shellter
Bir kez çalıştırdıktan ve doğru bir kullanıcı yazdıktan sonra, kullanıcıyı parmaklar. Eğer anlamsız yazıyorsam, 'tekrar dene veya çıkış yapmak için çıkış' yazıyor ve bir kez doğru bir kullanıcıya koymaya çalıştığımda 'tekrar dene' ya da çıkmak için çıkış yazıyor. username_loop.sh Lütfen bulmak için kullanıcı adı giriniz. jmalley2 Giriş: jmalley2 Adı: Joseph Malley username_loop.sh Lütfen Bulmak için kullanıcı adı giriniz. asdfasdfasfasf tekrar deneyin ya exit –