linux - 在 For 循环 (Bash) 中使用变量名称
问题描述
我有两组目录。在第一个目录中,我有 8 个文件:
file1.txt file2.txt file3.txt ... file8.txt
在名为 的第二个目录output
中,我有多个子目录。我想编写进入每个子目录内部的 for 循环output
(所以它们是directory1
,directory2
等等......)并读取一个名为database_file_#.txt
. 目前,我已经在下面编写了这个循环,但它一次只适用于一个目录。
for file in *; do
name="${file%%.*}"
python script.py --parameter $file --out ../../output/directory1/${cts_name}
--readin ../../output/directory1/database_file_1.txt
done
对于第二个目录,我执行以下操作:
for file in *; do
name="${file%%.*}"
python script.py --parameter $file --out ../../output/directory1/${cts_name}
--readin ../../output/directory2/database_file_2.txt
done
我不想为输出中的所有目录重写目录#。有没有办法可以使用变量来代替?
解决方案
for i in 1 2 3 4 5 6 7 8; do
for file in *; do
name="${file%%.*}"
python script.py --parameter "$file" --out ../../output/directory"${i}/${cts_name}" \
--readin "../../output/directory${i}/database_file_${i}.txt"
done
done
推荐阅读
- sql - 如何根据开始和结束日期复制记录
- javascript - 在 vuejs 中的组件之间传递数据
- arm - 32 位 ARM 堆栈:为什么 SP 的最低有效 2 位必须始终为 0?
- java - DatePickerDialog 按钮不显示标签
- c# - SetFilePointer 奇怪的问题
- javascript - JSON/PHP/MYSQL 登录连接错误
- java - 当用户输入无效数据时避免 NullPointerException
- javascript - 如何使用 JSON (AngularJS) 比较时间(小时和分钟)
- python - Python,Bokeh - 我的按钮不会做任何事情
- bitbucket - 如何使用 bitbucket rest API 确定与给定提交最接近的标签?