如果你执行bash launch_script.sh 5 6
代码,但是如果我bash launch_script.sh 6 5
它会询问新的起始值,但是它没有在脚本中使用它,那么代码就会起作用 - 脚本就会结束。
#!/bin/bash
a=$1
b=$2
if [ $1 -gt $2 ]
then
echo "$1 is bigger then $2, plz input new start number"
read -p "You're start number will be?: "
else
until [ $a -gt $b ];
do
echo $a
((a++))
done
fi
答案 0 :(得分:1)
循环未执行,因为它是else
块的一部分。如果您想要始终运行循环,请将其放在if
:
#!/bin/bash
a=$1
b=$2
if (( $1 > $2 )) ; then
echo "$1 is bigger then $2, plz input new start number"
read -p "You're start number will be?: " a
fi
until (( $a > $b )) ; do
echo $((a++))
done
要遍历read语句,只需引入一个类似的循环:
#!/bin/bash
a=$1
b=$2
while (( $a > $b )) ; do
echo "$1 is bigger then $2, plz input new start number"
read -p "You're start number will be?: " a
done
until (( $a > $b )) ; do
echo $((a++))
done
请注意,我修复了代码中的几个问题:
read
可以将值直接分配给变量。(( arithmetic condition ))
语法,并包含了回显的增量。