一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情。
执行Shell脚本的三种方式
脚本
首先我们创建一个test.bash
文件,test.bash
脚本内容如下
#!/bin/bash
echo 'hello world!'
执行方式
1. bash
+脚本名,或者sh
+脚本名
$ sh test.sh
$ bash test.sh
2. 赋予可执行权限,直接执行
$ chmod +x test.sh
$ ./test.sh
为啥不能在赋予可执行权限之后,直接执行test.sh
?
$ test.sh
bash: test.sh: command not found
因为直接执行test.sh
,默认会去bin
目录下查找该输入项是不是可执行的命令,很明显不是,会报错。因此需要带目录进行执行,相对路径和决定路径都可以
$ ./test.sh
hello world!
$ /d/workSpace/shortcut_key/test.sh
hello world!
3. 基于当前shell命令行执行
$ source test.sh
# 可以简写为
$ . test.sh
该方式和上述的两种方式的最大区别就是:
- 上述两种执行脚本的方式,都会基于当前shell,新开一个子shell执行脚本
- 而使用
source
执行的脚本,会在当前输入命令的shell执行 - 最大的作用:保证变量的作用域正确,避免子shell声明的变量,在父shell中未定义