1、默认变量
变量 | 含义 | 备注 |
$0 | 脚本名 | 相当于c语言中的argv[0] |
$1 | 脚本名后的第1个参数 | 相当于c语言中的argv[1] |
$2 | 脚本名后的第2个参数 | 相当于c语言中的argv[2] |
$# | 脚本接收的参数个数 | 相当于c语言中的argc |
$@ | 脚本接收的所有参数 | |
$* | 脚本接收的所有参数 | 与$@等价 |
$? | 前一行命令的执行状态 |
2、变量:
变量之间不能有空格,有空格的话,需要用双引号或单引号引起来。
VAR="hello world"
3、命令交互read--------------->等待用户输入变量,类似c语言的scanf
read [-pt] variable
参数p:后面可以接提示符
参数t:后面可以接秒数
也可以不使用参数
示例1:不使用参数
echo "input yes or no"
read VAR
示例2:
read -p "input yes or no" VAR -------------> -p表示提示的内容
示例3:
read -p "input yes or no" -t 5 VAR ------------->-t表示有5s的输入时间
4、自动进行交互--->如输入scp,ssh时需要用户输入密码,此方法无需用户在现场输入密码
参考本文。
5、定义变量类型declare
declare [-aixr] variable
参数a:将variable定义为数组
参数i:将variable定义为整型(integer)
参数x:将variable设置成环境变量,类似于export的作用
参数r:variable为readonly类型,值不能被更改
shell中默认的变量值都是字符串,当需要进行整型计算的时候,用到declare,当然也可以使用该文中讲的算数代换
echo $[VAL+1]