[shell]特殊变量汇总

系统变量:

$#参数个数
$0程序的名称
$1传给函数的第1个参数
$2传给函数的第2个参数
$3传给函数的第3个参数
... 
$9传给函数的第9个参数,9往后的必须将数字{}起来
${10}传给函数的第10个参数
${11}传给函数的第11个参数
......
$n传给函数的第n个参数
$?函数或者程序正常退出返回0,否则返回1
$*传递给程序的所有参数组成的字符串
$@函数的参数顺序保存的字符串
$$本程序进程ID
$!上一个程序进程ID
$(seq 10)1 2 3 4 5 6 7 8 9 10
  





自定义变量

# 自定义变量“=”前后不能有空格
a="hello World" 
echo $a
echo "你好!${a}bcde"  #此时变量为${a}

#整数的运算

int_a=1
int_b=3

int_c=`expr $int_a + $int_b` #"+"前后有空格


变量修饰符


${variable:-word}如果变量variable已被设置且值非空,则代入它的值。否则,代入word
${variable:=word}已被设置且值非空,就代入它的值。否则,将variable的值设为word。始终代入variable的值。位置参量不能用这种方式赋值
${variable:+word}如果变量variable已被设置且值非空,则代入word的值。否则,什么都不代入(代入空值)
${variable:?word}如果变量variable已被设置且值非空,则代入它的值。否则,输出word并且从shell退出。如果省略了word,就会显示信息:parameter null or not set
${variable:offset}获得变量variable值中位置从offset开始的子串,偏移为从0到串的末尾 19
${variable:offset:length}获得变量variable值中位置从offset开始长度为length的子串

子串的变量扩展


${变量%模式}将变量值的尾部与模式进行最小匹配,并将匹配到的部分删除
${变量%%模式}将变量值的尾部与模式进行最大匹配,并将匹配到的部分删除
${变量#模式}将变量值的头部与模式进行最小匹配,并将匹配到的部分删除
${变量##模式}将变量值的头部与模式进行最大匹配,并将匹配到的部分删除
${#变量}替换为变量中的字符个数。如果是*@,长度则是位置参量的个数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值