Я тестирую простую оболочку программы (sh).Shell sh, синтаксис while (состояние)
Я использую цикл while, но он показывает ошибку.
./essai.sh: строка 5: тест: слишком много аргументов
Это код:
#!/bin/sh
numero=1
max=3
while test [ $numero -le $max ]
do
ping -c 2 127.0.0.1
numero=$(($numero + 1))
printf $numero
sleep 5
done
Он очень чувствителен к пространствам ... Я тестировал это решение раньше, но я не обращал внимания на пробелы. Спасибо, в любом случае, он работает сейчас! –
Или просто удалите квадратные скобки: 'while test $ numero -le $ max' – cfromme
Или используйте parentheseis и сделайте сравнение более естественным:' while ((numero <= max)) '.... OOPS, только что заметили: У нас есть Posix Shell, а не bash. В этом случае эта альтернатива не сработает. – user1934428