if-then的高级特性
#!/bin/bash
#bash shell 提供了3个可在if-then语句中使用的高级特性
#1.在子shell中执行命令的 ()
#2.用于数学表达式的 (( ))
#3.用于高级字符串处理功能的 [[ ]]
#1.在子shell中执行命令的 ()
#bash shell执行command之前,先创建一个子shell在其中执行命令。返回状态码0,则执行then部分
echo ----------case1---------
echo $BASH_SUBSHELL
if (echo $BASH_SUBSHELL)
then
echo "the subshell command operated successfully"
else
echo "the subshell command was NOT successful"
fi
#会先创建子shell,所以,第二次打印 $BASH_SUBSHELL时,打印结果是1.
#$BASH_SUBSHELL:环境变量,值为,当前环境子shell的个数
echo ---------case2--------
val1=10
if (( $val1 ** 2 > 90 ))
then
(( val2 = $val1 ** 2 ))
echo "the square of $val1 is $ val2,"
echo "which is greater than 90."
fi
echo ---------case3--------
# [[ expression ]] ,expression 可以使用test命令中的标准字符串比较。
# 除此之外,还提供了test命令所不具备的特性————模式匹配
if [[ $BASH_VERSION == 5.* ]]
then
echo "You are using the Bash Shell version 5 series."
fi
echo $BASH_VERSION
运行结果