【发布时间】:2020-12-24 19:37:23
【问题描述】:
我正在为一个 c 程序编写一个 bash 脚本,该程序要求输入 4 个数字引脚。但是,当我编写脚本时,输出似乎在循环中运行,但它并没有中断它被识别为程序将接受的正确数字的位置。
#!/bin/bash
RANGE=9000
count=${RANDOM:0:4}
while [[ "$count" -le $RANGE ]]
do
number=$RANDOM
(( "number %= $RANGE" ))
echo $number
if [[ "$count" == "$RANGE" ]]; then
break
fi
done
当我运行它时,我可以在输出中看到一些返回为 2 或 3 位的数字,而不是 4。所以理论上,我想要做的是找到一个 4 位的随机数,程序将采取,但我不知道随机数是什么,所以本质上它是一种蛮力,或者只是我手动猜测密码。
【问题讨论】:
-
你为什么要把你的算术表达式放在引号里?只是
(( number %= RANGE ));不需要$s 或引号。 -
无论如何,如果你得到一个 3 位数字,这意味着第一个数字是 0;如果您得到一个 2 位数字,则 前两位 数字为 0。
-
...顺便说一句,在这种情况下,不清楚您所说的“对于 C 程序”是什么意思。
-
这是一个要求输入数字的 c 程序。 c程序不是我自己写的。此外,当我在引号中键入算术表达式时,我仍然是 bash 的新手,但我会在以后的脚本中考虑到这一点。
标签: bash