bash 파일 을 실행 하면 예상 치 못 한 token '$' do\r '근처에 구문 오류 가 발생 했 습 니 다.

1321 단어 linuxshell
pycharm 에 sh 파일 을 직접 썼 습 니 다. 서버 에서 실행 하면 오류 가 발생 합 니 다. 제목 과 같은 오류 가 발생 했 습 니 다.
then, 서버 에서 vim 에서 모든 줄 을 바 꾸 고 빈 칸 을 지우 면 다시 치 는 것 이 잘못 되 었 습 니 다.
마지막 으로 잘못된 원인 과 두 가지 해결 방식 을 정리 했다.
원인:
사실 많은 블 로그 에서 windows 와 Liux 시스템 의 줄 바 꿈 문자 가 다 르 기 때문에 windows 에서 줄 바 꿈 자 는 '\r' 이 고 Liux 에 서 는 '' 만 있 습 니 다. 이 제 는 잘못된 의 미 를 알 게 되 었 습 니 다. windows 형식 으로 쓴 코드 를 Liux 에 넣 으 면 줄 바 꿈 자 는 '\r' 가 하나 더 생 겼 습 니 다. 이것 이 바로 오류 입 니 다. "syntax error near unexpected token '$' do\r '"불필요 한 'r' 의 원인.
시각 적 으로 볼 수 있 습 니 다: 명령 을 실행 하고 파일 이름 을 수정 하 는 것 에 주의 하 십시오.
cat -v bb.sh

나타 납 니 다:
for i in 1 2 3;^M
do^M
  echo"aa"^M

이 ^ M 이 있 으 면 window 의 줄 바 꿈 자 를 표시 합 니 다. Liux 의 줄 바 꿈 이 라면 끝 에 ^ M 이 나타 나 지 않 습 니 다.
해결 방법
1. 초보 소 백, 단순 폭력
먼저 cat 1 발:
cat bb.sh

출력:

for i in 1 2 3;
do
  echo"aa"

그리고 cmd 에서 왼쪽 단 추 를 누 르 고 복사 한 다음 vim 에서 파일 을 새로 만 들 고 쓰기 모드 로 전환 한 다음 오른쪽 단 추 를 누 르 면 복사 하고 종료 저장 하면 됩 니 다.
2. sed 로 '\r' 를 교체 합 니 다.
sed 's/\r//' bb.sh > aa.sh

첫 번 째 s 는 교체 의 뜻 을 나타 낸다. 그 는 bb. sh 의/r 를 '' 로 바 꾸 고 교체 한 내용 을 aa. sh 의 파일 에 저장 하 는 것 이다.
이상
 
 

좋은 웹페이지 즐겨찾기