다음 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";'
답변1
몇 가지 오류:
while
조건 앞뒤에 공백이 필요합니다.[1]
bash에서는 잘못되었습니다. 아마도 진리값이 1인 것을 사용하고 싶을 것입니다. 그렇다면:
또는 를 사용하세요true
. 이 두 가지가 가장 일반적이고 읽기 쉽습니다.;
또한 명령이 줄바꿈으로 구분되므로 각 줄 끝에 s를 추가할 필요가 없습니다.
그래서 당신은 이것을 할 수 있습니다 :
#!/cpd/misc/bin/bash
while :
do
date "+%T"
sleep 60
done
답변2
while
그 뒤에는 공백이 와야 합니다.
하지만 당신은 어떻게 생각하세요 [1]
? 이름이 지정된 파일이 있으면 1
일치하므로 bash는 이를 확인합니다 while 1
. 1
실행 가능하지 않고 $PATH에 있으면 실패합니다. 그렇지 않다면 1
bash는 실행을 시도할 것이고 [1]
실행 가능한 스크립트와 프로그램의 이름을 현명하게 지정하는 사람이 없기 때문에 아마도 다시 실패할 것입니다 [1]
.