Bash中对变量的操作

黑鹰比利

黑鹰比利

2016-01-29 18:44

Bash中对变量的操作,Bash中对变量的操作

  1.条件变量替换:
   Bash Shell可以进行变量的条件替换,既只有某种条件发生时才进行替换,替换条件放在{}中.
   (1) ${value:-word}
     当变量未定义或者值为空时,返回值为word的内容,否则返回变量的值.
   (2) ${value:=word}
     与前者类似,只是若变量未定义或者值为空时,在返回word的值的同时将word赋值给value
   (3) ${value:?message}
     若变量以赋值的话,正常替换.否则将消息message送到标准错误输出(若此替换出现在Shell程序中,那么该程序将终止运行)
   (4) ${value:+word}
     若变量以赋值的话,其值才用word替换,否则不进行任何替换
   (5) ${value:offset}
     ${value:offset:length}
     从变量中提取子串,这里offset和length可以是算术表达式.
   (6) ${#value}
     变量的字符个数
   (7) ${value#pattern}
     ${value##pattern}
     去掉value中与pattern相匹配的部分,条件是value的开头与pattern相匹配#与##的区别在于一个是最短匹配模式,一个是最长匹配模式.
   (8) ${value%pattern}
     ${value%%pattern}
     于(7)类似,只是是从value的尾部于pattern相匹配,%与%%的区别与#与##一样
   (9) ${value/pattern/string}
     ${value//pattern/string}
     进行变量内容的替换,把与pattern匹配的部分替换为string的内容,/与//的区别与上同

  
  注意:上述条件变量替换中,除(2)外,其余均不影响变量本身的值
  
  2.变量的算术运算
   在Bash Shell中,只能进行两个整数间的运算,其结果仍为整数.要进行算术运算,需要使用let命令,语法为:
   let expr
   expr是一个包含项和操作符的表达式,项可以是一个变量或是一个整数常数,当使用整数常数时,其默认为十进制整数,用户可以用radio#number来指定其它形式的整数,其中radio定义了整数是几进制表示的,number是该整数的值.若radio>10,那么数字字符可从0-9和A-Z.
   在表达式中支持的操作符及其含义为:
   +,-,*,/,%   加,减,乘,除,取模
   >>,<<,&,^,|  左移,右移,位与,位异或,位或
   ?:      三元运算符.与C语言中的定义一致
   ~       取补码
   !,>=,<=,>,<,==,!=,&&,||
   =,+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=
   表达式式中也可以使用括号.括号或运算优先级的定义与一般计算机语言中的相同.
   let命令具有返回值.当计算结果(若有多个表达式时,以最后一个为准)为0时,返回值为1,否则为0.
   当表达式中含有shell的特殊字符(如|)时,需要用引用符('或")将其引用起来.
   使用let时还需要注意的时,对于let x+y这样的式子,shell虽然计算了x+y的值但却将结果丢弃,若不想这样,可以使用let sum=x+y将x+y的结果保存在变量sum中
   另外还可以使用((和))操作符取代let命令,而且这样的话,还可以省去对算术表达式的引用,如果想返回表达式的值,则需用$(())的格式.
展开更多 50%)
分享

猜你喜欢

Bash中对变量的操作

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Bash中对变量的操作

Bash中的特殊字符

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Bash中的特殊字符

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

VC中对office的操作

编程语言 网络编程
VC中对office的操作

PHP中GET变量的使用

PHP
PHP中GET变量的使用

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

C#中对注册表的操作

电脑网络
C#中对注册表的操作

VC++ 中对注册表的操作

编程语言 网络编程
VC++ 中对注册表的操作

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Excel中自定义函数实例剖析

Excel中自定义函数实例剖析

Qpopper的Quota问题

Qpopper的Quota问题
下拉加载更多内容 ↓