Alternatif bir çözüm olarak;

#!/bin/sh

for dosyaadi in `cat /tmp/filelist`
do
      echo $dosyaadi
      echo -n "Silinsin mi? (e/h): "
      read islem
      case "$islem" in 
        ...................
      esac 
done

deneyebilirsiniz
  ----- Original Message ----- 
  From: Cahit Güçlü 
  To: [email protected] 
  Sent: Tuesday, March 20, 2007 9:30 PM
  Subject: [FreeBSD] shell script


  Burası bu konunun yeri mi bilmiyorum ama en azından nereden yardım 
alabileceğimi söyleyen birileri çıkabilir diye düşündüm.

  Bir dosyanın içeriğini satır satır okuyup (dosya içeriğinde dosya adları var) 
her bir satırda durup bu dosyayı sileyimmi diye sorup verilen cevaba göre işlem 
yapan bir script yazmaya çalıştım:

   

  #!/bin/sh

   

  while read dosyaadi;

  do

        echo $dosyaadi

        echo

        echo -n "Silinsin mi? (e/h): ";

        read islem;

        case "$islem" in

              ... yapılacak işlemle ilgili komutlar ...

        esac

  done < /tmp/filelist

   

  gibi bir kod yazdım. Ama while read döngüsünün içindeki e/h cevabını isteyen 
read komutuna gelindiğinde sanırım bir sonraki while read devreye giriyor ve 
sıradaki satır soruya cevap olarak girilmiş gibi işleme devam ediyor, benim 
klavyeden cevap girmemi beklemiyor. Silinsin mi sorusundan sonra benim 
klavyeden gireceğim cevabı beklemesini nasıl sağlayabilirim ya da başka bir 
şekilde bu işlemi nasıl yapabilirim?

   

  Teşekkürler

Cevap