1.shell规范
#!/bin/bash
脚本的第一行一般都是这个,#!指定脚本的执行程序,
告诉系统这个脚本应该使用什么解释器来执行,也就是使用哪一种shell解释器。
需要注意的是当加上这一行的时候,我们在执行脚本的使用,
可以使用./test.sh和 sh test.sh两种形式,其中./需要脚本有执行权限,
同时让系统使用脚本中第一行的shell解释器来执行脚本。
当没有这一行的时候,我们只能使用 sh test.sh这种。
2.变量定义
变量格式:变量名=值
# 变量命名规则
1.命名只能使用字母,数字,下划线,首个字符不能以数字开头
2.等号左右不能有空格
3.字符串需要使用单引号或双引号引起来
举例
name="张三"
age=18
count=3.3
使用unset取消变量
unset test
echo $test
3.变量分类
本地变量:定义在脚本或者当前终端中,脚本执行完成或终端结束变量失效。
环境变量:在用户的家目录下面的.bashrc 或者.bash_profile文件中 ,只能本用户字节使用,查看用户的环境变使用env,查看用户的所有变量(包括临时变量与环境变量)使用set。
全局变量:使用export命令将本来变量输出到当前的shell的环境变量。要想所有的用户及shell都可以使用,可以在/etc/profile /etc/bashrc下定义。
内置变量:不同的shell解释器一般都会有一些内置变量。
$?:上一条命令执行后返回的状态,当返回值为0,表示执行成功,非0表示执行失败。
$:表示当前所在进程的进程号
$#:脚本后面接的参数的个数
$*:脚本后面所有参数的,所有参数当做一个整体输出,每个变量之间使用空格隔开。
$@: 脚本后面所有的参数,参数是独立的,也是全部输出。
$0:当前所在的程序的名称
$1-$9: 位置参数变量
${10}-${n}:拓展的位置参数变量,大于10的必须要使用大括号括起来
4.变量取值
# 变量取值
echo $name
echo "$name"
#不可使用单引号,shell中单引号是直接输出引号中的值的,不会进行解释。
# 如果一定要使用单引号,可以使用eval命令
eval echo '$name'