bash - 如何根据它们的编号命名 bash 脚本参数
问题描述
我有一个需要 4 个以上文件的 bash 脚本,我希望有一种方法可以为第 4 个文件之后的任何文件声明一个带有数字的变量名。
我在想的是某种while循环来声明一个基于变量的名称,该变量查看第4个文件之后的文件编号,带走3(因此它将这个新变量编号为?数的“第一个”的额外文件。
我可能没有很好地解释这一点
if [[ $# -lt 4 ]]; then
echo "correct use is"
echo "./UAT.sh input.inp expOut.exp actOut.act then whatever number of .bld files"
else
input=$1
exp=$2
act=$3
numFile=3
while [[ ${numFile} -lt $# ]]; do
(( numFile++ ))
declare -i bldNum=${numFile}-3
bld$bldNum=${!numFile}
done
echo "bld1 is ${bld1}"
echo "bld2 is ${bld2}"
echo "bld3 is ${bld3}"
fi
当我尝试运行这个程序时,我的 while 循环中的第三行似乎是我遇到麻烦的地方:
./newUAT.sh: line13: bld1=b1.bld: command not found
这似乎非常接近我想要的,但我需要在'b1.bld'之前有一个'$'才能分配变量。但似乎我添加了一个额外的“$”,脚本也不喜欢它,或者我添加了一个“$”,它同样不起作用。有什么帮助或想法吗?
解决方案
推荐阅读
- python - TypeError:张量不可散列
- python - 通知用户 Dash 中的无效输入
- python-3.x - 如何从数组创建数据框
- heritrix - 从 Heritrix 网络爬虫获取 URL 图
- python - 如何使用 Python 代码移动文件
- python - 应用程序与 buildpack Django heroku 不兼容
- python - Python Pandas 插值:在缺失的日期范围内重新分配值
- rest - 如何防止攻击者使用我的密码重置机制向炸弹人发送电子邮件?
- c - Can't figure out what's wrong with my code for a HackerRank problem in C
- python - 如何干净地重用此函数中的代码?