1. .sh 文件是 Ubuntu 下可执行文件,首先需要确定它的权限是否是可执行的,运行下面的语句可添加权限:
chmod a+x filename
2. 用 vim 打开 sh 文件:
vi filename
3. 查看文件格式:
:set ff 或 :set fileformat
4. 修改文件格式:
:set ff=unix 或 :set fileformat=unix
5. 保存退出:
:wq (存盘退出)
6. 执行:
./filename
注意:不可以用 sh filename,因为在 Ubuntu 下,sh 调用的事 dash 解释器,用./filename 默认调用 bash 解释器,只要在文件开头加
上:
#!/bin/bash
在 Linux 中执行.sh 脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在 windows 系统中编辑的.sh 文件可能有不可见字符,所以在 Linux 系统下执行会报以上异常信
息。
解决:1)在 windows 下转换:
利 用 一 些 编 辑器 如 UltraEdit 或 EditPlus 等 工 具 先将 脚 本 编码 转 换 , 再 放 到 Linux 中 执 行 。转 换 方 式 如 下 ( UltraEdit ) :
File-->Conversions-->DOS->UNIX 即可。
2)也可在 Linux 中转换:
首先要确保文件有可执行权限
#sh>chmod a+x filename
然后修改文件格式
#sh>vi filename
利用如下命令查看文件格式
:set ff 或 :set fileformat
可以看到如下信息
fileformat=dos 或 fileformat=unix
利用如下命令修改文件格式
:set ff=unix 或 :set fileformat=unix
:wq (存盘退出)
最后再执行文件
#sh>./filename