#!/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;
想法?
linuxterminal:find比x长的行数
在bash脚本中实时性能增强
Shell Hacking:从csh启动bash
Whiptail Gauge:循环中的variables未被设置
在Bash命令行中通过文件运行R函数
windows在每行的末尾使用两个字符: 'r'和'n' 。 Unix只使用'n' 。 据推测,你正在编辑这个记事本,并在cygwin中运行,这就是为什么你得到这个错误。
下载Notepad ++编辑器,该编辑器在Edit / Eol Conversion下具有unix样式行尾的选项。
你的脚本可能写在windows机器上,包含DOS换行符CR LF而不是Unix, LF
所以你只需要转换换行符。
你可以使用各种工具,但我的首选是dos2unix
要在CentOS上安装它,Fedora或RHEL可以:
sudo yum install dos2unix
在Ubuntu或Debian上安装dos2unix :
sudo apt-get install tofrodos sudo ln -s /usr/bin/fromdos /usr/bin/dos2unix
现在要做转换:
dos2unix your_script.sh
然后运行脚本
sh your_script.sh
你忘了分号:
#!/bin/sh for repo in repoA repoB repoC; do echo cloning $repo. done
请注意,repoA,repoB和repoC在本上下文中被视为变量。
总结以上是内存溢出为你收集整理的Bash脚本语法错误“做”?全部内容,希望文章能够帮你解决Bash脚本语法错误“做”?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)