以./xx.sh start 112 113为例
$#------执行脚本时传递的参数个数($#=3)
$@------传递的参数($@=start 112 113)
$0-------脚本文件自己($0=./xx.sh)
$1-------传递给脚本的第一个参数($1=start)
$2-------传递给脚本的第一个参数($2=112)
$3-------传递给脚本的第一个参数($3=113)数组
$$-------当前进程的pid进程
$()与``-------命令替换(command subsititution)字符串
$(())-------数学运算(arithmetical operation)数学
${}-------用作变量的替换(variable subsititution) 另外还有一些特异的功能,见附件; it
history用法:参见man 3 historyio
!!-------上一次命令变量
!^-------上一次命令的第一个参数file
!$-------上一次命令的最后一个参数command
!*-------上一次命令的所有参数方法
!:0-------命令自己
!:3-------指定第3个参数
!:2-5-------指定2到5个参数
!:-3-------指定0到3个参数
!:2*-------指定2到最后一个参数
!:2- -------指定2到最后二个参数
!:s/xx/yy -------将上次命令中的xx替换为yy
附${}的特异功能
${}-------用作变量的替换(variable subsititution)
${}对数组的操做:
A=(abc def ghij) $A被定义数组
${A[@]}与${A[*]}获得所有数组
例:for i in ${A[@]}; do echo $i; done;
${A[2]}获得所有数组的第2个组数
${#A[@]}与${#A[*]}获得数组的数量
${#A[2]}与${#A[2]}获得数组的第二个数组的长度即 def的长度
A[3]=okaywangbin 对数组的第3个组数进行赋值
${}为字符串的操做
假设咱们定义了一个变量为:
file=/dir1/dir2/dir3/my.file.txt
咱们能够用 ${ } 分别替换得到不一样的值:
记忆的方法为:
单一符号是最小匹配﹔两个符号是最大匹配。[/list]
咱们也能够对变量值里的字符串做替换:
利用 ${ } 还可针对不一样的变量状态赋值(没设定、空值、非空值):