每个脚本调用都选择不同文件的 Bash 脚本?

每个脚本调用都选择不同文件的 Bash 脚本?

我正在尝试创建一个 bash 脚本,该脚本在目录中包含一系列文件,并选择其中 1 个并将其输出到终端。然后在下一次运行时,它选择序列中的下一个文件并输出该文件的名称。可以这样做吗?如何让 bash 程序“记住”它选择的文件,然后在下一个脚本调用时选择下一个文件?

答案1

使用移动软链接。

初始化:

ln -s file001 .thisone

在你的脚本中:

infile="$(stat -c "%N" .thisone)"
sequence=$( basename "$infile"  | sed -e 's%file0*%%' )
next=$((sequence + 1))
printf -v nextfile "file%03d" $next
rm -f .thisone
if [[ -f "$nextfile" ]] ; then
    ln -s "$nextfile" .thisone
else
    ln -s "file001" .thisone
fi
#
# process $infile, .thisone next

未经测试,但 shellcheck.net 喜欢它。

相关内容