следующий сценарий 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";'
Пара ошибок:
while
, перед условием[1]
в bash неправильно, предположительно вы хотели использовать что-то, что имеет истинностное значение 1. Если это так, используйте :
или true
, эти два наиболее распространены и читабельны;
s в конце каждой строкиТак что вы можете сделать:
#!/cpd/misc/bin/bash
while :
do
date "+%T"
sleep 60
done
while
должен сопровождаться пробелом.
Что, по вашему мнению, делает [1]
while? Если есть файл с именем 1
, он будет сопоставлен, поэтому bash увидит while 1
, и если 1
не был исполняемым и не был в $PATH, он потерпит неудачу. Если нет 1
, bash попытается выполнить [1]
и, вероятно, снова потерпит неудачу, потому что никто в здравом уме не называет свои исполняемые скрипты и программы [1]
.