Shell是一个命令行解释器,也是一个强大的编程语言,通过Shell可以直接调用Linux系统命令
1. Shell脚本的格式
Shell脚本最好以.sh结尾,Linux会知道这是一个Shell脚本并通过颜色标识
Shell脚本的第一行必须为 #!/bin/bash
, 用来标识这是一个Shell脚本
后面遍写Shell代码即可
2. 特殊符号
Shell中有一些特殊的符号具有特殊的含义:
- $:调用变量的值
- $(命令):返回命令执行的结果 (如 d=$(date),d会赋值为当前时间;若不加括号,d的值就是date字符串)
- #:注释
- \:转义符
使用引号时:
- " ":上述的特殊字符会发挥其特殊含义
- ‘ ’:上述的特殊字符没有特殊含义,仅仅代表一个字符
3. Shell变量
Shell变量分为以下几种:
用户自定义变量:
- 仅对当前Shell生效,如
name=xxx
,则定义了一个变量name - 变量叠加: name=${name}456. #在当前的name值后加上456
环境变量:
- 对所有的Shell生效。定义环境变量时需加export,如
export NAME=xxx
,则定义了一个环境变量name - 如果想要每次重启后环境变量依旧存在,则需把环境变量写入环境变量配置文件中
- 两个常用的配置文件:/etc/profile (所有用户), ~/.bash_profile (当前用户)
常见的环境变量 PATH:系统查找命令的路径,如果想不加路径直接使用一些命令,则可以把命令所在的文件夹加入PATH中
位置参数变量
- 位置参数用来代表接收的参数,$n表示接收的第n个参数
- $0:代表命令本身
- $*:代表所有参数(所有参数看成一个整体)
- $@:代表所有参数(所有参数区别对待,可配合for循环)
#!/bin/bash
num1=$1
num2=$2
num3=$(($num1+$num2))
echo $num3
执行时 ./test.sh 1 2 会输出3
预定义变量
- $?:代表上一个命令的执行状态(0表示正确执行,非0则没有正确执行)