Kesalahan variabel loop untuk loop


10

Ketika saya menggunakan untuk suka

 for i in 1 2 3 4 5 

maka file saya berisi #!/bin/shdi bagian atas.

Tetapi ketika saya menggunakan

for(( i = 0; i<=5; i++))

maka itu menunjukkan kesalahan

Syntax error: Bad for loop variable

dan berjalan dengan benar ketika saya menghapus shebang. Tolong beritahu saya alasan di balik ini.

Jawaban:


11

for(( i = 0; i<=5; i++))khusus untuk Bash dan tidak berfungsi dengan shell Bourne polos ( /bin/sh).

Jika Anda menghapus shebang, skrip dijalankan oleh shell Anda saat ini (yang kemungkinan adalah Bash) sehingga berfungsi.

Ganti #!/bin/shdengan #!/bin/bashuntuk membuat shebang berfungsi.


Apakah ada cara untuk melakukannya dalam shmode? Terima kasih!
Ziyaddin Sadigov

2
i=0; while [ $i -le 5 ]; do echo $i; i=$((i+1)); done
Florian Diesch

1
Saya sudah menggunakan #bash dan tidak berfungsi
BG Bruno

2
for(( i = 0; i<=5; i++))

untuk jenis loop ini hanya berjalan pada Bash shell. jadi, jika Anda ingin menjalankan ini, maka coba perintah ini:

$bash filename.sh

Saya pikir ini akan berfungsi dengan baik. dan lihat ini juga.


1

Saya telah memecahkan masalah ini dengan menggunakan ./ alih-alih perintah sh. Sebagai contoh jika Anda menempatkan sh test.shsebaliknya hanya membuat perintah Anda sebagai ./test.shDan kemungkinan besar masalah akan terpecahkan.


0

Coba ini mungkin ini bisa menyelesaikan masalah Anda

#!/bin/bash
j=0
for (( i=1; i <= 5; i++ ))
do
 echo "the loop is runing $i time: and value of j is $j"
 j=`expr $j + 1`
done
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.