쉘 스크립팅을 배우기 위해 Edureka 비디오를 팔로우하고 있는데 문제가 발생했습니다.
강사가 처음에 했던 이 간단한 스크립트를 실행했는데 모든 것이 잘 작동했지만 지금은 실행할 수 없습니다.
#!/bin/sh
a=0
while [ $a -lt 10 ]
do
echo $a
a=' expr $a + 1'
done
정말 이상해요. 처음에는 작동했지만 그 이후로 예상치 못한 연산자 또는 인수가 너무 많은 등 두 가지 오류가 발생했습니다. 나는 전체 내용을 처음부터 네 번 다시 작성해 보았지만 처음에 작동했던 부분을 제외하고는 동일했습니다.
나는 이것이 sh 대 bash의 구문과 관련이 있을 수 있다는 것을 온라인에서 읽었지만 shebang을 bash로 변경하고 bash로 실행해도 변경되지 않았습니다.
내가 뭘 잘못하고 있는지 아는 사람 있나요?
그런데 KDE Neon에서 실행 중입니다.
PS 지금은 이렇네요
#!/bin/sh
a=0
while [ $a -lt 10 ]
do
echo $a
a=`expr $a + 1`
done
답변1
문제는 라인에 있습니다
a=' expr $a + 1'
읽어야 해
a=`expr $a + 1`
백틱 문자에 특히 주의하세요. 이는 쉘에 명령을 실행하고 변수를 출력으로 설정하도록 지시합니다.
이 줄에 오류 메시지가 나타나는 이유는 [
다음과 같습니다.두번째루프 주위의 시간은 $a
오류로 인해 리터럴 문자열 expr $a + 1
이며 이는 유효한 표현식이 아닙니다.