내 스크립트에서 오류가 발생하는 이유는 무엇입니까?

내 스크립트에서 오류가 발생하는 이유는 무엇입니까?

다음 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에 있으면 실패합니다. 그렇지 않다면 1bash는 실행을 시도할 것이고 [1]실행 가능한 스크립트와 프로그램의 이름을 현명하게 지정하는 사람이 없기 때문에 아마도 다시 실패할 것입니다 [1].

관련 정보