在 bash 中选择多个文件

在 bash 中选择多个文件

我想将 Scriptreplay 与位于同一目录中的多个日志/计时文件一起使用。

我现在的脚本如下所示:

select timings in /mnt/home/$USER/shell_logs/*; 
do
clear
scriptreplay $timings 
done;;
esac

有没有办法可以同时选择两个文件(日志和该日志的计时文件)?

答案1

最简单的方法是通过文件名找到目标文件。例如,如果选定的文件名是/mnt/home/$USER/shell_logs/20140326.log,您可以轻松找到同一目录中具有不同扩展名的另一个文件,或另一个目录中的另一个文件。

我们首先看一下如何剥离扩展:

timings="/mnt/home/$USER/shell_logs/20140326.timing" # just for testing
log="${timings%%.*}.log"
echo $log

下面演示了如何删除前导路径以更改到不同的目录:

log="/mnt/home/$USER/timings/${timings##*/}"

答案2

OP写道:

效果非常好!

select timings in /mnt/home/$USER/shell_logs/*.timing; 
do
log="${timings%%.*}.log"
  clear
  echo "${txtred}Script gestartet${txtrst}"
  scriptreplay $timings $log
  echo "${txtred}Script beendet${txtrst}"
done;;
esac

相关内容