2011-08-15 2 views
3

debian bash 명령 줄에서 for 문을 실행하면 잘 작동합니다. 하지만 sh 스크립트에서 실행하거나 bash 명령으로 실행하면 예기치 않은 토큰`do '근처에서 오류가 발생합니다 " 차이점은 무엇입니까?명령 줄에서 bash for 루프가 작동하지만 스크립트에서 실패했습니다.

[[email protected]] ~/tmp $ for i in {1..10}; do echo $i; done 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
[[email protected]] ~/tmp $ bash for i in {1..10}; do echo $i; done 
-bash: syntax error near unexpected token `do' 

동의어는 모두 centos enviorment에서 잘 작동합니다.

답변

0

모든 스크립트를 거꾸로 쉼표 나 파일로 묶을 수 있습니다. 여기에 bash for i in {1..10}을 입력하고 을 입력하면됩니다. 파일에 넣지 않으려면 -c 옵션을 사용해야합니다.

3

bash 명령 줄이 첫 번째 줄로 끝납니다. 그래서 별도로 실행됩니다

: 그 bash는 읽기 때문에 bash는 [옵션] [파일]

6

사용 -c 옵션 :

bash for i in {1..10}; 
do echo $i; 
done 

와 남자 bash는 명령 인수가 부하에 파일이어야합니다 말한다 당신이 전달하는 문자열로부터의 명령. 또한 명령 주위에 작은 따옴표를 사용하십시오.

bash -c 'for i in {1..10}; do echo $i; done' 
관련 문제