所以我有一个 bash 脚本,它需要接受任意数量的命令行参数并将它们放入一个字符串中
用户输入内容的示例:
give <environment> <email> <any number of integers separated by spaces>
give testing stuff@things.com 1 2 3 4 5
我想获取从 $3 到 $# 的所有参数并将它们连接成一个字符串。
我现在(可能很糟糕)的解决方案是
if [ $# -gt 3 ]
then
env="env="$1
email="email="$2
entList=""
for i in {3..$#}
do
if [ $i -eq 3 ]
then
entList=$3
shift
fi;
if [ $i -gt 3 ]
then
entList=$entList","$3
shift
fi;
done
fi;
我处理只有三个参数的情况略有不同,并且那个工作正常。
$entList
给定示例的最终值give testing stuff@things.com 1 2 3 4 5
应为:1,2,3,4,5
现在,当我运行它时,我收到以下错误:
/usr/local/bin/ngive.sh: line 29: [: {3..5}: integer expression expected
/usr/local/bin/ngive.sh: line 34: [: {3..5}: integer expression expected
第 29 和 34 行是:
line 29: if [ $i -eq 3 ]
line 34: if [ $i -gt 3 ]
任何帮助,将不胜感激。