Shell 运行shell脚本的多种方法

运行shell脚本文件可通过两类方法。


方法1:bash执行

语法

sh 文件

文件可使用相对路径或绝对路径。


示例

sh 01hello.sh

等价写法

sh /practise/c01base/01hello.sh

img


其它等价写法

/bin/sh 文件

为sh命令带上路径的完整写法。

/bin/bash 文件

sh为/bin/bash的链接,直接调用的写法。

bash 文件

会自动从/bin目录下找到bash程序。


上述各种写法最终调用/bin/bash程序来执行脚本。

推荐使用sh,最简单。


方式2:直接执行脚本文本

步骤1:设置文件为可执行

chmod +x 01-hello.sh

+x 表示文件添加可执行权限。


步骤2:运行文件

./文件名

如果文件名在当前目录,前面需要加./ 。

img


FAQ:报错

-bash: ./01-hello.sh: Permission denied?

程序如果没有设为可执行,会报这个错误。

img


FAQ:为什么不能直接用文件名,前面需要加./ ?

直接用文件名只会从/bin等系统目录找系统命令。习惯这个规则就好。

bash: 01-hello.sh: command not found...

img


小提示

当文件不可执行时,文件名我们无法按TAB自动完成。


FAQ:为什么执行时命令可以不用解释器?

因为我们在源文件通过#!/bin/bash指定了解释器,即使不指定,系统可能也会使用默认解释器。为保证代码的健壮性,要求加上此句。


通过绝对路径执行运行文件

sh 绝对路径

/practise/c01base/01-hello.sh

这里不需要./, ./只有在当前目录的文件才需要。

img


编码建议

如果一个文件频繁编辑代码进行测试,可以开两个连接,一个连接一直在vim界面,:w保存文件;另一个连接运行sh查看效果。