如何编写循环脚本,基于用户输入批量执行命令处理指定系列文件?
批量处理带数字后缀的文件:编写循环执行SAMsrc命令
你可以通过for循环遍历指定范围的数字,替换文件名中的固定后缀_01,实现批量执行SAMsrc命令。修改后的脚本如下:
echo How many LONG files exist? read numlongs # 遍历1到numlongs的数字,自动格式化为两位(如01、02) for i in $(seq -w 1 "$numlongs"); do # 动态生成每个文件的路径,替换后缀数字 DSpath="$SAMpath"/"$MRN"_EPI-LONG_"$DOM"_"$i".ds # 执行SAMsrc命令(去掉原脚本的exec,避免循环仅执行一次就退出) SAMsrc -r"$DSpath" -cGlobal,3-70Hz -W1 -t"$filename"final.max -v done
关键注意点:
seq -w参数会自动补零生成两位数字,完美匹配你文件的_01、_02后缀格式- 移除原脚本的
exec命令:exec会直接替换当前shell进程,导致循环只执行一次就终止,直接运行SAMsrc即可完成批量操作 - 循环变量
$i会依次替换文件名中的数字部分,自动生成每个目标文件的路径
内容的提问来源于stack exchange,提问作者Jeff Tenney
相关产品推荐
相关产品推荐

