shell 编程之变量
0x00 shell 变量基础
shell变量是一种很“弱”的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义。所以若要进行数学运算,必须使用一些命令例如let、declare、expr、双括号等。shell变量可分为两类:局部变量和环境变量。局部变量只在创建它们的shell中可用。而环境变量则可以在创建它们的shell及其派生出来的任意子进程中使用。有些变量是用户创建的,其他的则是专用shell变量。变量名必须以字母或下划线字符开头。其余的字符可以是字母、数字(0~9)或下划线字符。任何其他的字符都标志着变量名的终止。名字是大小写敏感的。给变量赋值时,等号周围不能有任何空白符。为了给变量赋空值,可以在等号后跟一个换行符。
0x01 shell 变量的声明
变量名=变量值
注意:1. 变量名与变量值之间不能有空格。
2. shell中默认把变量值当作字符串
例如: var="Tom"
num=100
num = $num+101
echo num // 输出为100+101
0x02 shell 变量引用



0x03 shell 常用命令
1. set 命令 -- 可以查看所有的变量,
set
2. unset 命令 -- 可以清除变量,相当于没有定义过。
unset 变量名
3. readonly 命令 -- 可以把变量变为只读变量,定义之后不能对变量进行任何更改
readonly 变量名
4. let 命令 -- 使其进行数学运算
var=100
let var=var+101
echo var // 结果为201
5. declare 命令 -- 定义变量类型
declare [选项] 变量=变量值
选项:
-i 整型
-a 将变量分配一个数组 分配元素
-f 列出函数的名称和定义
-F 只列出函数名
-r 将变量设为只读
-x 将变量名输出到子shell中
0x04 shell 特殊变量和位置变量
这组专用内置变量常常被称为位置变量。通常被shell脚本用来从命令行接收参数,或者被函数用来保存传给它的参数。
$0:当前脚本的文件名
$num:num为从1开始的数字,$1是第一个参数,$2是第二个参数,${10}是第十个参数
$#:传入脚本的参数的个数
$*:所有的位置参数(作为单个字符串)
$@:所有的位置参数(每个都作为独立的字符串)。
$?:当前shell进程中,上一个命令的返回值,如果上一个命令成功执行则$?的值为0,否则为其他非零值,常用做if语句条件
$$:当前shell进程的pid
$!:后台运行的最后一个进程的pid
$-:显示shell使用的当前选项
$_:之前命令的最后一个参数
"$*" 其值为 "$1 $2 $3"
"$@" 其值为 "$1" "$2" "$3"

浙公网安备 33010602011771号