Skip to content

Latest commit

 

History

History
47 lines (31 loc) · 1.44 KB

File metadata and controls

47 lines (31 loc) · 1.44 KB

常见的特殊符号的含义

1. $()与``

在 bash shell 中,$( ) 与 (反引号) 都是用来做命令替换用(commandsubstitution)的。
例如 version=$(uname -r)version=\uname -r``都可以是version得到内核的版本号

2. ${ }

${ }用于变量替换。一般情况下,$var 与${var} 并没有啥不一样。
但是用 ${ } 会比较精确的界定变量名称的范围。

3. $(())

$(())支持进行数学运算的。
支持+ - * / %:分别为 “加、减、乘、除、取模”。
但是注意,bash只能作整数运算,对于浮点数是当作字符串处理的。
在 $(( )) 中的变量名称,可于其前面加 $ 符号来替换,也可以不用

4. [ ]

test命令的另一种形式。

但要注意许多:
1.你必须在左括号的右侧和右括号的左侧各加一个空格,否则会报错。
2.test命令使用标准的数学比较符号来表示字符串的比较,而用文本符号来表示数值的比较。
3.大于符号或小于符号必须要转义,否则会被理解成重定向。

5. [[ ]]

针对字符串的test扩展, 支持正则表达式匹配。

IPPATTERN="^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$"
if [[ "$ip" =~ $IPPATTERN ]];then
    _tryip "$ip" "$pw" "$user"
else
    name="$ip"
    _tryname "$name"
fi

6.(( ))

针对数字的test扩展, 支持正则表达式匹配。