目录
第一: 符号汇总
符号 | 含义 |
---|---|
[] | 逻辑判断 |
() | 命令执行(类似于``) |
{} | 变量解释 |
(()) | 计算(类似于expr) |
[[]] | 用于条件判断 |
第二: 使用说明
2.1 []的使用
# 判断 test.bed文件是否存在
# 终端写法
# if [ -f test.bed ];then echo "test.bed exists";else echo "test.bed not exists";fi
# shell 脚本写法
if [ -f test.bed ];then
echo "test.bed exists"
else
echo "test.bed not exists"
fi
2.2 ()的使用
使用$(commond)的形式可以在命令行总执行命令并将输出结果替换到当前位置;
echo $(basename ~/test/linux/20241009/test.txt)
# test.txt
infile_name=$(basename ~/test/linux/20241009/test.txt)
echo ${infile_name}
# test.txt
圆括号()主要用于创建子shell。 圆括号内的命令会在一个子shell中顺序执行,这意味着在子shell中定义的变量不会影响到父shell中的变量;
即,圆括号用于将多个命令组合在一起执行。这些命令会在一个新开的子shell中顺序执行,任何在圆括号中定义的变量都仅在该子shell中有效,不会影响到父shell中的变量;
i=1;(let i+=5;echo $i); echo $i
# 6
# 1
2.3 {}的使用
2.3.1 扩展作用
对{}中的逗号分割的文件列表进行拓展;
echo {
a,b}.txt
# 结果为 a.txt b.txt
对{}中的点点(…)分割的顺序列表进行拓展;
echo {
1..5}
# 结果为 1 2 3 4 5
echo {
a..e}
# 结果为 a b c d e
2.3.2 命令分组(类似于匿名函数)
{}用来将一系列命令组合在一起执行,这些命令会在当前shell环境中运行,而不是开启一个新的子shell(如:{commond1; commond2;commond3;}),且变量在当前shell环境中保持;
注意事项:
- 第一个命令和左边的{之间必须有一个