1.1 Shell概述
Shell是一个命令行解释器,它接受应用程序/用户命令,然后调用操作系统内核。Shell还是一个功能想当强大的编程语言,易编写、易调试、灵活性强。
1.2 Shell脚本入门
使用shell写一个helloworld
# 创建目录scripts
mkdir scripts
# 创建shell脚本文件
touch helloworld.sh
# 编写shell脚本
vim helloworld.sh
# 编写如下内容
#!/bin/bash
echo "hello world!"
执行shell脚本的三种方法:
bash [脚本的相对路径/绝对路径]
或者sh [脚本的相对路径/绝对路径]
- 直接输入脚本的绝对路径或者相对路径执行脚本,这种方法要求脚本具有可执行权限
. [脚本的相对路径/绝对路径]
或者source [脚本的相对路径/绝对路径]
。这种方法与前两种方法不同点在于,前两种方法执行脚本时,其实是在当前shell中打开了一个子shell来执行脚本,shell执行完成之后关闭子shell回到父shell;而这种方法不需要打开子shell,直接在当前的shell中执行。开子shell和不开子shell的区别在于,环境变量的继承关系,如在子shell中设置的当前变量,父shell是不可见的。这也就是为什么我们每次修改完/etc/profile文件后都要source的原因。
父子shell测试:
可以在当前shell中输入命令,就可以在当前shell中嵌套创建一个子shell,之后所有的命令都将在子shell中执行。在子shell中执行exit将会关闭子shell,回到父shell,而在父shell中执行exit将会直接关闭shell终端。