如何制作 BASH 循环

如何制作 BASH 循环

我对 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

当然,在更复杂的场景中,您应该检查用户的响应是否为数字且大于零,例如,但我认为这个示例将满足您想要完成的任务。

来源:http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-7.html

相关内容