2011-08-15 136 views
3

當在debian bash命令行中運行for語句時,它工作正常。 但是當我在sh腳本中運行它或使用bash命令運行它時,它會保持報告「在意外標記附近發生錯誤」do「 差異在哪裏?bash循環工作在命令行中,但在腳本中失敗

[[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環境中工作正常。

回答

0

您可以將所有腳本封裝在引號內或文件中。因爲在這裏,你在做bash for i in {1..10},然後等等。如果你不把它放在一個文件中,你應該使用-c選項。

3

你的bash命令行以第一個結尾;

所以它被作爲單獨執行:

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

和人bash的說,命令參數應該是要加載的文件:bash的[選項] [文件]

6

使用-c選項,這樣Bash讀取您傳入的字符串中的命令。另外,在命令周圍使用單引號。

bash -c 'for i in {1..10}; do echo $i; done' 
相關問題