.sh에서 for 루프를 사용할 때 "예기치 않은 마커 `do 근처 구문 오류" 오류가 발생합니다. 코드는 다음과 같습니다.
#!/bin/sh
# some code
for flux in $(ls -d /home/eai/*/*/*) ; do
FICHIER=$(ls -p -tr $flux | grep -v / | head -n 1)
if [[ $FICHIER ]] ; then
# some code
fi
done
스크립트와 출력을 실행하는 다양한 방법:
1) sh script.sh 또는 bash script.sh
'cript_1409.sh: line 24: syntax error near unexpected token `do
'cript_1409.sh: line 24: `for flux in $(ls -d /home/eai/*/*/*); do
2)./script.sh
-bash: ./script_1409.sh: /bin/sh^M: bad interpreter: No such file or directory
내가 시도한 것:
1) 루프에 대해 다른 구문을 사용하십시오.
for flux in $(ls -d /home/eai/*/*/*) ; do
FICHIER=$(ls -p -tr $flux | grep -v / | head -n 1)
if [[ $FICHIER ]] ; then
# some code
fi
) &
done
또는
for flux in $(ls -d /home/eai/*/*/*)
do
FICHIER=$(ls -p -tr $flux | grep -v / | head -n 1)
if [[ $FICHIER ]] ; then
# some code
fi
done
2) #!/bin/sh를 #!/bin/bash로 변경합니다.
3) 확장자 .sh를 .bash로 변경하고 위의 모든 실행 명령을 다시 시도하십시오.
답변1
귀하의 스크립트는 DOS
코딩되어 있으며 sh
/ bash
는 그것을 좋아하지 않습니다. 설치 dos2unix
및 실행
dos2unix <script>
당신의 스크립트에. 다시 실행해 보세요.