저는 bash 스크립팅과 "if then" 문을 처음 접했습니다. 아래의 간단한 스크립트를 실행하면 실행되어 올바른 결과를 제공하지만 여전히 오류가 발생합니다. 스크립트 이름은 testscript.sh입니다. 오류는 다음과 같습니다: "./testscript: line 5: [csh: 명령을 찾을 수 없음]"
이것이 무엇을 의미하는지 아는 사람이 있나요?
#! /bin/bash
MY_SHELL="csh"
If ["$MY_SHELL" = "bash"
then
echo "You seem to like the bash shell."
else
Then "You don't seem to like the bash shell."
fi
답변1
한 줄씩 살펴보겠습니다.
#! /bin/bash
MY_SHELL="csh"
여태까지는 그런대로 잘됐다.
If ["$MY_SHELL" = "bash"
이제 이 줄에는 오류가 많이 있습니다.
if
대신If
- 쉘은 대소문자를 구분하므로foo
및FOO
는 다릅니다.[
문자 뒤에 공백이 있어야 합니다.]
테스트가 끝나면 공백을 추가 해야 합니다 .
이는 라인이 더 비슷해야 함을 의미합니다.if [ "$MY_SHELL" = "bash" ]
then
echo "You seem to like the bash shell."
else
이것들은 좋다
Then "You don't seem to like the bash shell."
여기 하나 원해요 echo
. 대소문자를 구분해야 한다는 점을 기억하세요.
fi
결과:
#! /bin/bash
MY_SHELL="csh"
if [ "$MY_SHELL" = "bash" ]
then
echo "You seem to like the bash shell."
else
echo "You don't seem to like the bash shell."
fi
편집: 쉘 스크립팅에 익숙해지면https://www.shellcheck.net/콘텐츠 검증에 유용한 웹사이트입니다. 오류 출력이 항상 명확하지는 않지만 일반적으로 오류를 지적하는 데 도움이 됩니다.
답변2
대괄호는 실제로 명령이므로 [
앞뒤에 공백이 필요합니다! ]
그래서:
if [ "$shell" = "bash" ];
요청하신 오류이기 때문에 제가 지적하지 못한 다른 오류도 있습니다.