Shell-day01-运算符

这篇博客介绍了基本的数学表达式语法,包括使用$(运算式)$或$[运算式]$进行计算,以及加、减、乘、除和取余等操作。文章通过实际案例展示了如何计算3+2、3-2以及(2+3)×4的值,是理解基础数学运算的实用教程。

1:基本语法

        1:“$((运算式))”或“$[运算式]”

        2:expr   +,-,\*,/,%    加,减,乘,除,取余

        expr运算符间要有空格

2:案例实操

        1:计算3+2的值

        2:计算3-2的值

        3:计算(2+3)x 4的值

### 条件判断中逻辑运算符的使用方法 在 Shell 脚本中,条件判断是通过 `[ ]` 或 `[[ ]]` 结构实现的,其中可以结合逻辑运算符进行复合条件判断。逻辑运算符主要包括: - **逻辑与(AND)**:表示两个条件必须同时成立。 - **逻辑或(OR)**:表示两个条件中至少有一个成立。 - **逻辑非(NOT)**:表示对条件取反。 #### 1. 使用 `[ ]` 时的逻辑运算符 在 `[ ]` 条件测试中,逻辑运算符应使用以下形式: - 逻辑与(AND):`-a` - 逻辑或(OR):`-o` 例如: ```bash num=5 if [ $num -gt 0 -a $num -lt 10 ]; then echo "Number is between 0 and 10" fi ``` 另一个使用逻辑或的例子: ```bash day="Monday" if [ $day = "Saturday" -o $day = "Sunday" ]; then echo "It is the weekend" else echo "It is a weekday" fi ``` #### 2. 使用 `[[ ]]` 时的逻辑运算符 在 `[[ ]]` 条件测试中,可以使用更接近传统编程语言的逻辑运算符- 逻辑与(AND):`&&` - 逻辑或(OR):`||` - 逻辑非(NOT):`!` 例如: ```bash num=5 if [[ $num -gt 0 && $num -lt 10 ]]; then echo "Number is between 0 and 10" fi ``` 另一个使用逻辑或的例子: ```bash day="Monday" if [[ $day == "Saturday" || $day == "Sunday" ]]; then echo "It is the weekend" else echo "It is a weekday" fi ``` #### 3. 使用逻辑非(NOT) 逻辑非可以用于对条件进行取反操作。例如: ```bash a=10 b=20 if ! [ $a -eq $b ]; then echo "a is not equal to b" fi ``` #### 4. 选择 `[ ]` 还是 `[[ ]]` - `[ ]` 是传统的测试命令,兼容性较好,但在处理字符串和逻辑运算符时较为严格。 - `[[ ]]` 是 Bash 的扩展特性,提供了更灵活的语法支持,例如支持正则表达式、模式匹配以及更直观的逻辑运算符(`&&`、`||`)[^1]。 #### 5. 注意事项 - 在使用 `[ ]` 时,不能使用 `||` 或 `&&`,必须使用 `-o` 和 `-a`。 - 在使用 `[[ ]]` 时,可以使用 `||` 和 `&&`,但必须确保使用双中括号 `[[ ]]`。 - 始终使用引号包裹变量以防止空值或空格导致错误,例如:`[[ "$var" == "value" ]]`。 - 确保变量在使用前已被赋值,否则可能导致脚本行为异常[^4]。 --- ### 示例脚本 ```bash #!/bin/bash read -p "请输入一个数字: " num if [ -z "$num" ]; then echo "输入为空,请输入一个数字" exit 1 fi if [[ $num -gt 100 || $num -lt 1 ]]; then echo "输入的数字不在 1 到 100 的范围内" else echo "输入的数字在有效范围内" fi ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

总会有天明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值