【发布时间】:2014-07-14 16:47:09
【问题描述】:
#!/bin/sh
for repo in repoA, repoB, repoC;
do
echo Cloning $repo.
done
当我执行这个 (sh myscript.sh) 时,我得到以下信息:
myscript.sh: line 2: syntax error near unexpected token `$'\r''
'yscript.sh: line 2: `for repo in repoA repoB repoC;
想法?
【问题讨论】:
-
检查文件中的 Windows 样式 CR/LF。你可以做到,
echo myscript.sh | od -c在角色上达到顶峰。逗号也是个问题。见cyberciti.biz/faq/bash-for-loop。 -
去掉逗号!
-
@IAmYourFaja - 输出的第二行打印了
\r,它将光标移回m所在的位置并打印了',因此输出很奇怪。尝试运行dos2unix myscript.sh。这应该将 CRLF 转换为\n。file myscript.sh会告诉你 myscript.sh 是什么类型的文件。cat -veT myscript.sh将打印 myscript.sh 的内容,包括不可打印的字符。