考慮這個簡單的shell腳本:當我把它粘貼到它工作正常一個cygwin窗口shell腳本作品
#!/bin/sh
fruitlist="Apple Pear Tomato Peach Grape"
for fruit in $fruitlist
do
if [ "$fruit" = "Tomato" ] || [ "$fruit" = "Peach" ]
then
echo "I like ${fruit}es"
else
echo "I like ${fruit}s"
fi
done
但是當我將它保存爲文本文件然而
$ ./test.sh
./test.sh: line 4: syntax error near unexpected token `$'do\r''
'/test.sh: line 4: `do
,如果刪除換行符它的工作原理:test.sh從cygwin的終端運行它,我得到這個
#!/bin/sh
fruitlist="Apple Pear Tomato Peach Grape"
for fruit in $fruitlist
do if [ "$fruit" = "Tomato" ] || [ "$fruit" = "Peach" ]
then echo "I like ${fruit}es"
else echo "I like ${fruit}s"
fi done
如何通過在文件中保留新行來使腳本更具可讀性,\n
似乎不起作用。
您在DOS - > UNIX轉換中添加了一些奇怪的字符。嘗試使用'dos2unix'來清理文件。 – fedorqui 2014-10-06 12:32:36
可能確實,我已經用更有用的信息來彌補這個問題,看看你現在是否能夠提供幫助? – Joly 2014-10-06 12:35:20
你使用的是什麼shell(+版本)? – 2014-10-06 12:38:09