~运算符解析

while(~scanf()){

}

解释:

 

 

  1. scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF(也就是-1)

  2. ~是位反操作符,也就是把操作数按位取反

     

    所以这个判断条件表示当读到文件尾(EOF)时,while退出。因为-1按位取反是0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Shell 脚本中,常见的运算符主要包括算术运算符、关系运算符、布尔运算符和字符串运算符等。 1. 算术运算符: | 运算符 | 描述 | 示例 | | ------ | ---------- | ---------------| | + | 加法 | `expr $a + $b` | | - | 减法 | `expr $a - $b` | | * | 乘法 | `expr $a \* $b` | | / | 除法 | `expr $a / $b` | | % | 取余 | `expr $a % $b` | 注意:算术运算符两边必须有空格,否则会出现语法错误。 2. 关系运算符: | 运算符 | 描述 | 示例 | | ------ | ----------------------| ---------------| | -eq | 判断两个数是否相等 | `if [ $a -eq $b ]` | | -ne | 判断两个数是否不相等 | `if [ $a -ne $b ]` | | -gt | 判断左侧数是否大于右侧 | `if [ $a -gt $b ]` | | -lt | 判断左侧数是否小于右侧 | `if [ $a -lt $b ]` | | -ge | 判断左侧数是否大于或等于右侧 | `if [ $a -ge $b ]` | | -le | 判断左侧数是否小于或等于右侧 | `if [ $a -le $b ]` | 3. 布尔运算符: | 运算符 | 描述 | 示例 | | ------ | --------------------------------------| ------------------| | ! | 非运算,表达式为 true 则返回 false,反之亦然 | `if [ ! false ]` | | -o | 或运算,有一个表达式为 true 则返回 true | `if [ $a -lt 20 -o $b -gt 100 ]` | | -a | 与运算,两个表达式都为 true 才返回 true | `if [ $a -lt 20 -a $b -gt 100 ]` | 4. 字符串运算符: | 运算符 | 描述 | 示例 | | ------ | ------------------------------------| ------------------------| | = | 判断两个字符串是否相等 | `if [ $a = $b ]` | | != | 判断两个字符串是否不相等 | `if [ $a != $b ]` | | -z | 判断字符串是否为空字符串 | `if [ -z $a ]` | | -n | 判断字符串是否为非空字符串 | `if [ -n $a ]` | | str | 判断字符串是否为非空字符串 | `if [ $a ]` | 注意:字符串运算符两边不需要空格,但是 `=` 和 `!=` 两个运算符需要被引号包含起来。 以上是 Shell 常见的运算符,可以根据需要在脚本中灵活使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值