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


你可能感兴趣的:(linux,变量,shell)