스크립트에서 "^M: 명령을 찾을 수 없음" [중복]

스크립트에서 "^M: 명령을 찾을 수 없음" [중복]

다음 스크립트를 실행하려고합니다.

#!/bin/csh
# USAGE EXAMPLE: solve_mysteries.scr ops6.txt 2
# USAGE EXAMPLE: solve_mysteries.scr allops.txt 1800
set opsfile = $1
set maxtime = $2
set f = $3

set outfile = brute_solutions.dat
set outfile2 = brute_constant.dat
set outfile3 = brute_formulas.dat
if -f $outfile /bin/rm $outfile
if -f $outfile2 /bin/rm $outfile2
if -f $outfile3 /bin/rm $outfile3

echo Trying to solve mysteries with brute force...

echo Trying to solve $f...
echo /bin/cp -p $f mystery.dat
/bin/cp -p $f mystery.dat
echo $opsfile arity2templates.txt mystery.dat results.dat >args.dat

timeout {$maxtime}s ./symbolic_regress3.x

나는 다음과 같은 결과를 얻습니다.

^M: Command not found.
^M: Command not found.
Trying to solve mysteries with brute force...
^M: Command not found.
...ing to solve ../example_data/example2.txt_train
 mystery.dat./example_data/example2.txt_train
/bin/cp: cannot stat '../example_data/example2.txt_train'$'\r': No such file or directory
^M: Command not found.
timeout: invalid time interval ‘60\rs’
Try 'timeout --help' for more information.
^M: Command not found.

왜 "^M: 명령을 찾을 수 없습니다" 오류가 발생하는지 아시나요?

답변1

cat -v script적어도 일부 행에는 아마도 끝에 CR(캐리지 리턴) 문자가 있음을 보여줍니다.

귀하의 스크립트는 DOS/Windows 형식의 텍스트 파일입니다. Unix 형식으로 변환해야 합니다(예: CR 제거). 이는 편집기나 도구를 통해 수행할 수 있습니다 dos2unix.

답변2

텍스트 편집기인 Sublimetext를 다운로드할 수 있는 경우 View->LineEndings->Unix에서 줄 끝을 변경할 수 있습니다.

그런 다음 파일을 저장하고 다시 실행해 보세요.

관련 정보