bash的操作符
操作符操作作用示例
$(())
$((VALUE))
进制转换
y=$((0b1010))
y=$((0x1F))
$((BASE#VALUE))
进制转换
y=$((2#1010))
y=$((16#1F))
$((a + b))
加法运算
echo $((2 + 3))
x=2
y=$(($x + 3))
$((a - b))
减法运算
echo $((2 - 3))
x=2
y=$(($x - 3))
$((a * b))
乘法运算
echo $((2 * 3))
x=2
y=$(($x * 3))
$((a / b))
除法运算
echo $((2 / 3))
x=2
y=$(($x / 3))
$((a ** b))
密方运算
echo $((2 ** 3))
x=2
y=$(($x ** 3))
$((a & b))
按位与
echo $((2 & 3))
x=2
y=$(($x & 3))
$((a | b))
按位或
echo $((2 | 3))
x=2
y=$(($x | 3))
$((a ^ b))
按位异或
echo $((2 ^ 3))
x=2
y=$(($x ^ 3))
$((a ^ b))
按位异或
echo $((2 ^ 3))
x=2
y=$(($x ^ 3))
$((~ a))
按位取反
echo $((~ 2))
x=2
y=$((~ $x))
$((a << b))
左移b
echo $((2 << 3))
x=2
y=$(($x << 3))
$((a >> b))
右移b
echo $((2 >> 3))
x=2
y=$(($x >> 3))
$()
y=$(COMMANDS)
COMMANDS命令的输出重定向到变量y
currentDir="$(cd $(dirname "$0");pwd)"
``
y=`COMMANDS`
COMMANDS命令的输出重定向到变量y
currentDir=`pwd`
()
(COMMANDS)
subShell中运行
pwd; (cd ~; pwd); pwd
<
COMMAND < FILE
从文件输入
mysql -uroot -p < xx.sql
<<
COMMAND <<EOF
content
EOF
从标准输入设备中输入
bc -l <<EOF
1 + 2
EOF
<<<
COMMAND <<< STRING
从字符串输入
bc -l <<< "1 + 2"
>
COMMAND 1> FILE
COMMAND 2> FILE
输出到文件,覆盖原文件
ls > ls.txt
>>
COMMAND 1>> FILE
COMMAND 2>> FILE
输出到文件,追加到原文件
ls >> ls.txt
|
COMMAND1 | COMMAND2
COMMAND1标准正确输出作为COMMAND2标准输入
ls | more
|&
COMMAND1 |& COMMAND2
COMMAND1任何输出作为COMMAND2标准输入
ls |& more

注意

Bash不支持多精度浮点数,而zsh支持。

Bash不支持0bNNN表示二进制数,而zsh支持。

Bash支持0NNN表示八进制数,而zsh认为它是十进制数。