开篇词
Linux 给我们提供了供命令、运算以及过程处理操作的扩展。
命令
我们可以借助 $()
或 `` 符号将输出作为命令来执行。
我们首先使用 $()
符号:
echo "ls -l" > ls_l_command_file
cat ls_l_command_file
$(cat ls_l_command_file) # 将文件内容 “ls -l” 当作命令来运行。
或者,我们可以使用反引号来实现相同的效果:
`cat ls_l_command_file` # 将文件内容 “ls -l” 当作命令来运行。
运算
我们可以使用运算扩展来快速地计算数值。
一些我们可以使用的运算符:
运算符 | 用途 |
---|---|
VARIABLE++ VARIABLE– | 获取变量值之后自增/自减 |
++VARIABLE --VARIABLE | 获取变量值之前自增/自减 |
- + | 负数/正数 |
! ~ | 逻辑/位运算 |
** | 幂 |
* / % | 乘/除/余数 |
+ - | 加/减 |
<= >= < > | 小于等于/大于等于/小于/大于 |
== != | 等于/不等于 |
expr ? expr : expr | 三目运算符 |
= *= /= %= += -= <<= >>= &= ^= | 将运算结果赋值给变量 |
加与减
echo $((1+1)) # 2
echo $((1-1)) # 0
比较
echo $((1<=1)) # true
echo $((1>=1)) # true
echo $((1<1)) # false
echo $((1>1)) # false
echo $((1==1)) # true
echo $((1!=1)) # false
三目运算符
正数以及负数为真,只有 0 为假:
echo $((1?20:-20)) # 20
echo $((0?20:-20)) # -20
echo $((-1?20:-20)) # 20
赋值运算符
NUM=2
echo $((NUM*=NUM)) # 4
echo $((NUM*=2)) # 8
echo $((NUM*=4)) # 32
过程替换
我们可以借助 <()
符号将命令的输出结果当作文件来使用:
cat <(ls) # 按顺序打印列表文件
tac <(ls) # 按逆向顺序打印列表文件
我所撰写的英文版本
31. Bash Shell - Expansions: Command, Arithmetic, Process Substitution
引用
参见
想看手册的其他内容?请访问该手册的所属专栏:《Linux 管理员手册:既简单又深刻》