linux - 为什么在 Linux shell 脚本中使用 % 不起作用?

标签 linux bash shell unix

<分区>

我使用 % 来确定数字是否可以被 5 整除。但它似乎总是返回“0”,表示所有内容都可以被 5 整除。

我做错了什么?

#!/bin/sh

n=20
i=1
# loop while i <= n
while [ $i -lt $n ] || [ $i -eq $n ]
do

# find the numbers that are evenly divisible by '5'

  m=`expr $n % 5`
  if [ $m -eq 0 ]; then
    echo $i" is evenly divisible by 5"
  fi

  # do i = i + 1
  i=`expr $i + 1`
done

我的输出看起来像这样:

1 is evenly divisible by 5
2 is evenly divisible by 5
3 is evenly divisible by 5
4 is evenly divisible by 5
5 is evenly divisible by 5
6 is evenly divisible by 5
7 is evenly divisible by 5
8 is evenly divisible by 5
9 is evenly divisible by 5
10 is evenly divisible by 5
11 is evenly divisible by 5
12 is evenly divisible by 5
13 is evenly divisible by 5
14 is evenly divisible by 5
15 is evenly divisible by 5
16 is evenly divisible by 5
17 is evenly divisible by 5
18 is evenly divisible by 5
19 is evenly divisible by 5
20 is evenly divisible by 5

最佳答案

n 总是 20 所以 "m=`expr $n % 5"总是 0

关于linux - 为什么在 Linux shell 脚本中使用 % 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21370607/

相关文章:

c - 运行 for 循环指令的时间

bash - 脚本 shell 如何将 x 分钟减少到给定日期?

linux - Linux中/etc/passwd文件最后一行获取用户ID

linux原始套接字编程问题

c - malloc 大量数据来填充 ram 并观察自由参数

mysqldump 在失败时给出退出代码 0,例如因为数据库不存在

bash - 当日期格式约束与日期格式列不匹配时,如何使用 awk 按日期列过滤 csv 文件?

windows - 如何让 powershell 告诉我丢失的 DLL?

shell - ${arr[@]} 在 sed 命令中

regex - 一行中双字符的奇数个 (GREP)