Ass*_*viz 4 bash shell-script for variable
在我的 bash 脚本中,我尝试使用一个数字作为输入变量for
a for 循环我将脚本运行为
./script.sh InputFolder/ Number_of_iterations
Run Code Online (Sandbox Code Playgroud)
脚本应该在给定的文件夹内工作,并运行一个 for 循环,次数与Number_of_iterations
变量设置的次数相同。但不知何故,我无法将变量设置为整数。
这是我在脚本中的循环示例:
for i in {1..$(($2))}
do
echo "Welcome $i times"
done
Run Code Online (Sandbox Code Playgroud)
我已经尝试过双括号$(($...))
选项以及双引号"..."
,但我一直得到的输出是
Welcome {1..5} times
Run Code Online (Sandbox Code Playgroud)
这让我觉得,这不是一个整数。如果您能将输入参数作为整数读入脚本,我将不胜感激。
您可以通过两种方式执行此操作:
使用与 ksh93 兼容的 shell(ksh93、zsh、bash):
for (( i=1;i=<$2;i++ ))
do
echo "Welcome $i times"
done
Run Code Online (Sandbox Code Playgroud)
这里我们将 i 设置为 1 并循环,递增它直到它小于或等于 $2
使用 GNU 系统上的 POSIX shell:
for i in $(seq "$2")
do
echo "Welcome $i times"
done
Run Code Online (Sandbox Code Playgroud)
该seq
命令(特定于GNU)将在单独的行中输出从 1 到 $2 中指定的数字的数字。假设您没有修改$IFS
(默认情况下包含行分隔符),命令替换会将其拆分为多个元素以for
供循环。