在开发的过程中免不了接触 .sh 文件。在此简单整理一下 .sh 文件的创建与打开。其中部分参考了了以下链接:
Linux下四种方式执行.sh文件的区别
1. 创建 .sh 文件
打开终端 依次输入以下内容即可创建并执行 .sh 文件:
touch helloworld.sh
gedit helloworld.sh
此时会弹出一个可编辑页面,在此可编辑页面中输入:
#!/bin/bash
echo "Hello world!!"
sleep 200
echo "Hello world!!"
sleep 200
保存上述可编辑页面。然后继续在刚才的终端中输入:
chmod +x helloworld.sh
./helloworld.sh
可以成功看到终端里显示 Hello world
。这样就成功创建了 .sh 文件
2. 打开 .sh 文件
有以下常用命令:
chmod a+x filename
vi filename
:set fileformat
:set fileformat=unix
:wq
./filename
3. .sh 文件执行方式
有以下四种 .sh 文件执行方式:
3.1 ./helloworld.sh
在当前 shell 执行脚本,即将 helloworld.sh 当成一个文件执行,此时需要 helloworld.sh 的运行权限(x 权限)。同时,有 2 个新进程在运行:其一是 helloworld.sh;其二是 sleep。
如果在执行到第一个 sleep 时按 ctrl+c
终止脚本,helloworld.sh 和 sleep 一起终止,并且第 2 个 sleep 不会执行,因为整个 helloworld.sh 运行已经终止。
3.2 sh helloworld.sh
新建一个 shell 执行 helloworld.sh 脚本里面的命令,不需要执行权限,有读取权限(r 权限)即可。此时,有 2 个新进程在运行:其一是bash;其二是 sleep。
如果执行第 1 个 sleep 时按ctrl+c,bash 被终止,结果和第 1 种方式一样,第 2 个 sleep 不会执行。
3.3 . test.sh
在当前 shell 执行 helloworld.sh 里面的命令,不需要执行权限,有读取权限(r 权限)即可。此时,只有 1 个新进程在运行,就是 sleep。
如果在执行第 1 个 sleep 时按 ctrl+c 终止,那么第 2 个 sleep 接着运行,直到脚本所有命令执行完。
3.4 source test.sh
和第 3 种方式一样。