31. Bash Shell - 扩展:命令、运算、过程替换

开篇词

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

打印赋值操作结果
 

过程替换

我们可以借助 <() 符号将命令的输出结果当作文件来使用:

扫描二维码关注公众号,回复: 8954346 查看本文章
cat <(ls)    # 按顺序打印列表文件
tac <(ls)    # 按逆向顺序打印列表文件

将 ls 的结果当作文件并使用 cat 以及 tac 命令来对其进行打印操作

我所撰写的英文版本

31. Bash Shell - Expansions: Command, Arithmetic, Process Substitution
 

引用

参见

想看手册的其他内容?请访问该手册的所属专栏:《Linux 管理员手册:既简单又深刻

发布了103 篇原创文章 · 获赞 6 · 访问量 5062

猜你喜欢

转载自blog.csdn.net/stevenchen1989/article/details/104111842
今日推荐