第一个shell脚本
进入 Linux 终端,编写一个 Shell 脚本,文件名为 hello.sh :
#!/bin/bash
cd /opt/
echo "Hello World !"
.sh 不是强制要求的,常用扩展名为 sh代表shell,扩展名并不影响脚本执行。
#! 告诉系统这个脚本需要什么解释器来执行。
echo 命令用于向窗口输出文本。
运行
1. 调用解释器执行
bash hello.sh 或者 sh hello.sh <==> /bin/bash hello.sh 或者 /bin/sh hello.sh
2. 作为可执行程序
chmod +x hello.sh && ./hello.sh //赋予执行权限,然后执行此文件
3. 使用 source 命令
source hello.sh
三种运行方式的区别:
在脚本的第二行有cd命令,这是一个改变工作目录的命令,可是使用第一种和第二种执行脚本后当前的工作目录并没有改变,使用第三种方法执行后当前的工作目录就改变了,进入了opt中。出现这种情况是系统本身执行脚本的方式不同所造成的!
前两种方法执行脚本时系统会创建一个子进程或者说子shell来执行脚本,原来的进程就是父进程,整个过程中父进程会等待子进程执行完毕,然后子进程退出,父进程也退出。cd命令确实被执行了,但是仅仅是在子进程中改变了工作目录,所以脚本执行完后使用pwd显示工作目录并没有改变。而第三种方法执行的shell脚本的话并不创建子进程,就是在原来的进程中执行,所以最后的工作目录改变了。
本文出现任何错误,请留言私信批评指正。