Почему мой сценарий выдает ошибку?


следующий сценарий bash показывает ошибку. Как я могу исправить эти ошибки.

#!/cpd/misc/bin/bash
while[1];
do date "+%T";
sleep 60;
done

Ошибки:

./bash1.sh: line 2: while[1]: command not found
./bash1.sh: line 3: syntax error near unexpected token `do'
./bash1.sh: line 3: `do date "+%T";'
0
18.10.2016, 14:09
2 ответа

Пара ошибок:

  • Вам нужен пробел после while, перед условием
  • [1] в bash неправильно, предположительно вы хотели использовать что-то, что имеет истинностное значение 1. Если это так, используйте : или true, эти два наиболее распространены и читабельны
  • Также, поскольку команды разделены новой строкой, вам не нужны ;s в конце каждой строки

Так что вы можете сделать:

#!/cpd/misc/bin/bash
while :
do 
    date "+%T" 
    sleep 60
done
1
28.01.2020, 02:47

while должен сопровождаться пробелом.

Что, по вашему мнению, делает [1] while? Если есть файл с именем 1, он будет сопоставлен, поэтому bash увидит while 1, и если 1 не был исполняемым и не был в $PATH, он потерпит неудачу. Если нет 1, bash попытается выполнить [1] и, вероятно, снова потерпит неудачу, потому что никто в здравом уме не называет свои исполняемые скрипты и программы [1].

0
28.01.2020, 02:47

Теги

Похожие вопросы