本文采用的linux版本为CentOS 7
资料来源为 B站尚硅谷的linux教程
一,Shell脚本的执行方式
1,采用 bash 或 sh+脚本的相对路径或绝对路径(不用赋予脚本+x 权限)
sh ./helloshell.sh
sh /usr/local/shells/helloshell.sh
2,采用输入脚本的绝对路径或相对路径执行脚本(必须具有可执行权限+x)
(1)首先要赋予 helloworld.sh 脚本的+x 权限
chmod +x helloshell.sh
(2)执行脚本
./helloshell.sh
注意:
第一种执行方法,本质是 bash 解析器帮你执行脚本,所以脚本本身不需要执行权限。
第二种执行方法,本质是脚本需要自己执行,所以需要执行权限。
3,在脚本的路径前加上“.”或者 source
. helloworld.sh
source helloworld.sh
几种执行方式的区别:
1,前两种方式都是在当前 shell 中打开一个子 shell 来执行脚本内容,当脚本内容结束,则 子 shell 关闭,回到父 shell 中。
2,第三种,也就是使用在脚本路径前加“.”或者 source 的方式,可以使脚本内容在当前 shell 里执行,而无需打开子 shell!
3,开子 shell 与不开子 shell 的区别就在于,环境变量的继承关系,如在子 shell 中设置的 当前变量,父 shell 是不可见的。
二,变量
1,常用的系统变量
$HOME、$PWD、$SHELL、$USER
2,自自定义变量
基本语法:
(1)定义变量:变量名=变量值,注意,=号前后不能有空格
(2)撤销变量:unset 变量名
(3)声明静态变量:readonly 变量,注意:不能 unset
变量定义规则:
(1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。
(2)等号两侧不能有空格
(3)在 bash 中,变量默认类型都是字符串类型,无法直接进行数值运算。
(4)变量的值如果有空格,需要使用双引号或单引号括起来。
3,特殊的变量
(1)$n