shell变量赋值:name=string
“=”是赋值符号。两边不能直接跟空格,否则shell将视为命令。string是被赋予的变量值。若string中包含空格、制表符和换行符,则string必须用单双引号将其括起来。双引号了允许使用变量替换,单引号内不能。引用变量:1、在变量名前使用$字符,即$name的形式引用变量的值2、为了界定变量名,避免混淆,也可以使用 ${name}的格式引用。变量输出:echoprintf 用户格式化输出变量赋值若字符换恰好是可执行的命令,且包括在``中,将返回执行结果。myhello=`echo hello`申明全局变量exportshell变量的输入
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 |