shell变量赋值与引用及扩展
shell变量赋值:name=string“=”是赋值符号。两边不能直接跟空格,否则shell将视为命令。
string是被赋予的变量值。若string中包含空格、制表符和换行符,则string必须用单双引号将其括起来。双引号了允许使用变量替换,单引号内不能。
引用变量:
1、在变量名前使用$字符,即$name的形式引用变量的值
2、为了界定变量名,避免混淆,也可以使用 ${name}的格式引用。
变量输出:
echo
printf 用户格式化输出
变量赋值
若字符换恰好是可执行的命令,且包括在``中,将返回执行结果。
myhello=`echo hello`
申明全局变量
export
shell变量的输入
1、read [参数] [变量名]
常用参数
-p prompt:设置提示信息。
-t timeout:设置输入的等待秒数
变量替换扩展
表达式说明${var-DEFAULT}若var未被生命,则以DEFAULT作为其值${var=DEFAULT}${var:-DEFAULT}若var未被生命或其值为空,则以DEFAULT作为其值${var:=DEFAULT}${var+OTHER} 若var呗声明了,那么其值就是OTHER,否则为空
${var:+OTHER} 若var被声明了或其值不为空,那么其值就是OTHER,否则就为空
${!varprefix*}匹配之前所有以varprefix开头进行声明的变量${!varprefix@}匹配之前所有以varprefix开头进行声明的变量 变量的字符串操作
表达式说明${#string}$string的长度${string:position}在$string中,从位置$position开始提取子串${string:position:length} 在$string中,从position开始提取长度为length的子串
${string#substring}从变量$string的开头,删除最短匹配$substring的子串${string##substring}从变量$string的开头,删除最长匹配$substring的子串${string%substring}从变量$string的结尾,删除最短匹配$substring的子串${string%%substring}从变量$string的结尾,删除最长匹配$substring的子串${string/#substring/replacement}如果$string的前最匹配$substring,那么就用$replacement来代替匹配的$substring${string/%substring/replacement}如果$string的后最匹配$substring,那么就用$replacement来代替匹配的$substring
页:
[1]