스크립트와 출력을 실행하는 다양한 방법:

스크립트와 출력을 실행하는 다양한 방법:

.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>

당신의 스크립트에. 다시 실행해 보세요.

관련 정보