gpt4 book ai didi

bash - 打印两个给定数字之间的所有数字

转载 作者:行者123 更新时间:2023-11-29 09:51:16 25 4
gpt4 key购买 nike

我正在编写一个 Bash 脚本,它接受两个整数并输出两个整数之间的所有数字。它看起来像这样:

输入:

bash testScript 3 10
3
4
5
6
7
8
9
10

这是我编写的一些代码,我认为它可以工作,但我还没有足够的运气让它工作。

read myvar
read myvar2
while [ $myvar -le myvar2 ]
do
echo $myvar
myvar=$(($myvar+1))

//timer in-between numbers

sleep .5
done

最佳答案

Bash 使用 double parenthesis 支持 c 风格的循环构造:

$ for ((x=3; x<=10; x++)); { echo $x; }
3
4
5
6
7
8
9
10

或者,大括号展开:

$ for i in {3..6}; do echo $i; done
3
4
5
6

大括号扩展的问题是您需要使用 eval 来使用变量...


一个常见的 GNU 实用程序是 seq但它不是 POSIX,因此可能不会出现在每个 *nix 上。如果你想在 Bash 中编写类似的函数,它看起来像这样:

my_seq ()   
# function similar to seq but with integers
# my_seq [first [incr]] last
{
incr=1
start=1
if [[ $# -gt 2 ]]; then
start=$1
incr=$2
end=$3
elif [[ $# -gt 1 ]]; then
start=$1
end=$2
else
end=$1
fi
for ((x=start; x<=end; x+=incr)); { echo $x; }
}

然后用 1、2 或 3 个参数调用它:

$ my_seq 30 10 60
30
40
50
60

关于bash - 打印两个给定数字之间的所有数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42044791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com