繁体   English   中英

运行循环 N 次的 shell 脚本,其中 N 是用户输入

[英]shell script to run for loop N times where N is user input

#!/bin/bash

read -p "Enter X in seconds: " X
read -p "Enter M(no. of times): " M

for i in {1.."$M"};
do
    gcc hello.c -o hello
    ./hello
    sleep "$X"
done;

Shell 脚本每 X 秒运行一个简单的 hello world C 代码 M 次,其中 X 和 M 是用户输入。 当我运行脚本时,for 循环只运行一次。 但是当我用任何数字替换“$M”时,它运行良好。 那么我的错误是什么? 如何在 for 循环迭代中提供用户输入?

Bash 的大括号扩展发生在评估变量之前。 您可以使用替代的 C 样式循环:

for((i=1; i<=M; i++)); do
    ....
done
for i in $(seq X Y); do ... done

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM