Shell 运行shell脚本的多种方法
运行shell脚本文件可通过两类方法。
方法1:bash执行
语法
sh 文件
文件可使用相对路径或绝对路径。
示例
sh 01hello.sh
等价写法
sh /practise/c01base/01hello.sh
其它等价写法
/bin/sh 文件
为sh命令带上路径的完整写法。
/bin/bash 文件
sh为/bin/bash的链接,直接调用的写法。
bash 文件
会自动从/bin目录下找到bash程序。
上述各种写法最终调用/bin/bash程序来执行脚本。
推荐使用sh,最简单。
方式2:直接执行脚本文本
步骤1:设置文件为可执行
chmod +x 01-hello.sh
+x 表示文件添加可执行权限。
步骤2:运行文件
./文件名
如果文件名在当前目录,前面需要加./ 。
FAQ:报错
-bash: ./01-hello.sh: Permission denied?
程序如果没有设为可执行,会报这个错误。
FAQ:为什么不能直接用文件名,前面需要加./ ?
直接用文件名只会从/bin等系统目录找系统命令。习惯这个规则就好。
bash: 01-hello.sh: command not found...
小提示
当文件不可执行时,文件名我们无法按TAB自动完成。
FAQ:为什么执行时命令可以不用解释器?
因为我们在源文件通过#!/bin/bash指定了解释器,即使不指定,系统可能也会使用默认解释器。为保证代码的健壮性,要求加上此句。
通过绝对路径执行运行文件
sh 绝对路径
例
/practise/c01base/01-hello.sh
这里不需要./, ./只有在当前目录的文件才需要。
编码建议
如果一个文件频繁编辑代码进行测试,可以开两个连接,一个连接一直在vim界面,:w保存文件;另一个连接运行sh查看效果。