我对 bash 和 Linux 很陌生,我想知道如何制作一个 bash 循环,以便当它运行时,它会询问你运行多少次,并且它会运行那么多次。
我是在 LUA 中完成的,但我希望它在 bash 中,这样它就可以添加到文件中,~/.bashrc
这样当我通过 ssh 连接到我的 VPS 时它就会启动。这是我写的lua代码:
write("How many times should I loop? ")
local Num = tonumber( read() )
for i=1,Num do
print("Looped "..tostring(i).." time(s).")
end
这是我要添加到我的中的小东西~/.bashrc
:
if [[ -n $SSH_CONNECTION ]] ; then
echo example
fi
答案1
这是单行:
read -p "No of Repetitions?" repeat; for i in $(seq $repeat); do echo "This is $i"; done
如果您想$SSH_CONNECTION
在非空时运行此命令:
[[ -n $SSH_CONNECTION ]] && read -p "No of Repetitions?" repeat; for i in $(seq $repeat); do echo "This is $i"; done
&&
表示只有前一个命令成功后才运行下一个命令 ($?=0
)read -p "No of Repetitions?" repeat
将提示"No of Repetitions?"
并将输入保存为repeat
变量。for i in $(seq $repeat); do echo "This is $i"; done
这个 for 循环将用于seq
循环指定的次数来完成工作。您应该替换echo "This is $i"
为您想要执行的任何操作。
这可以详细阐述为:
if [[ -n $SSH_CONNECTION ]]; then
read -p "No of Repetitions?" repeat
fi
for i in $(seq $repeat); do
echo "This is $i"
done
答案2
看看这是否有帮助:
#!/bin/bash
echo -n "How many times should I run? "
read numOfTimes
for i in $(seq 1 $numOfTimes);do
echo $i
done
让我们将解释分成几部分:
- 回声-n在屏幕上显示消息并将用户的响应读取到变量中次数。
- 一场狂欢for循环具有以下结构: 对于 [1 2 3 4 ... n ] 中的 i;做X;完毕
- 在本例中,我创建了序列1 2 3 4 ... n使用序列,您将 1 作为起始数字和最后一个元素,由 的值表示$numOfTimes。
当然,在更复杂的场景中,您应该检查用户的响应是否为数字且大于零,例如,但我认为这个示例将满足您想要完成的任务。