问题

Windows上面提交shell脚本,然后在Linux下检出容易出现脚本执行不了的情况(或者直接虚拟机拖拽拷贝),往往有以下2种原因:

① 文本格式不正确,因为Windows换行符格式和Linux的不兼容

② 脚本权限不对,因为拷贝过来的文件大概率跟当前用户和组的权限不匹配

解决

文本格式

文本格式不正确,因为Windows是使用Windows(CR LF)格式的,而Linux采用Unix(LF),bash终端一般识别不了前者,一旦部署到ARM Linux那也肯定出问题

  1. 尽量避免在Windows提交shell脚本:实际工作中很多人都喜欢用Windows做开发,尽管开发的是Linux应用
  2. 使用vim编辑器,输入命令set ff查看脚本格式,如果是dos格式,则输入命令set ff=unix即可纠正过来
  3. 可以使用notepad++,通过右下角的状态栏那里可以查看文本格式,右键切换即可

文本权限

先看看权限

1
ls -l

一般脚本需要添加用户可执行权限

1
sudo chmod u+x demo.sh

执行

1
2
./demo.sh
bash demo.sh

下里巴人
海纳百川,文以载道
hywing技术自留地
总访问 113701 次 | 本页访问 326