Shell笔记:括号( ) 与 双括号 (( ))

括号( )

单括号 (...) 常用的用法有两种,一种是用于shell中的数组,一种是获取命令执行后的结果。

1. 数组: 括号 ( ) 最直观的使用当然是数组,因为shell中数组的定义就是 array_name=(value1 value2 ...) ,这里只列一些基础的使用示例:

#!/bin/sh

# 数组定义
my_array=("a" "b" "c")
# 根据下标获取数组元素
echo ${my_array[0]}
echo ${my_array[1]}
# 获取数组所有元素
echo ${my_array[*]}
# 获取数组长度
echo ${#my_array[*]}

# 通过下标直接定义数组
new_array[0]="D"
new_array[1]="E"
new_array[2]="F"
# 打印数组所有元素
echo ${new_array[*]}

输出如下:

a
b
a b c
3
D E F

2. 执行命令: 括号 ( ) 另外一种非常常用的用法是使用语法 $(...) 执行命令,然后获取命令的执行结果。

# 执行单个命令
now_date=$(date)
echo ${now_date}

# 多个命令一起执行,获取最后的执行结果
current_path=$(cd $(dirname ${0});pwd)
echo ${current_path}

输出:

Fri Nov 25 01:23:55 CST 2022
/root/shell_test

双括号(( ))

需要特别注意,双括号 (( ))是用于整数运算的,不能用于其他类型数据的运算,并且 (( )) 中使用的变量可以直接使用名称,而不用加 $ 符号。常用的用法有两种,一种是获取整数计算表达式的值,另一种就是作为if语句的判断表达式。

1. 获取整数计算值: 可以使用 $(( ... )) 的方式获取整数计算表达式的值。示例:

#!/bin/sh

a=2
b=3
# 直接使用变量名称进行计算
c=$((a+b))
# 输出结果:5
echo ${c}

2. if条件判断: 作为条件判断时,同样可以使用 +、-、*、/、%、==、!= 等算术运算符,如果想要多个表达式一起判断,也可以使用 &&、|| 逻辑运算符。示例如下:

#!/bin/sh

a=2
b=3
c=6
if ((a<b && a+b<c)); then
    echo "YES"
fi
posted @ 2024-01-21 11:23  山上下了雪-bky  阅读(40)  评论(0编辑  收藏  举报