我一直在尝试解决一个问题,该问题是我的循环数应该减少,但是没有任何效果。我需要创建一个while循环,该循环将读取给定的时间。例如,如果在终端中输入“ files.txt -a 3”,则需要循环以重复“输入字符串:” 3次。在下面的代码中,我只能使其循环一次。我不确定在哪里放置柜台,我可以说我把它放在各处。在if语句内部,for循环内部以及while循环内部,但似乎没有任何作用。用户将放入的数字保留在$ count变量中。
#!/bin/bash
if ["$1" = "-a" ]
then
read in user String and save into file
fi
while [ "$count" > 0 ]
do
for i in $count
do
if [ "-a" ]
then
read -p "Enter in a string: " userSTR
echo userSTR >> files.txt
count=$(($count - 1))
fi
done
done
答案 0 :(得分:0)
对于条件表达式,您需要使用[[ expression ]]
,例如这将循环四次:
count=4
while [[ $count > 0 ]] ; do
echo "$count"
count=$(( $count - 1 ))
done
要从命令行参数获取计数,可以使用以下命令替换上面的分配count=4
,以解析命令行参数:
if [ $# -lt 2 ] ; then
echo "Usage: $0 -a [count]"
exit 1
fi
if [ "$1" = "-a" ] ; then
shift
count=$1
fi