从命令行到 libreoffice 配置文件的路径

Path to the configuration files of libreoffice from the command line

我习惯于 运行 libreoffice 无头地从 bash 脚本中执行一些宏:

soffice --headless "$year_to_process"/"$initials".ods macro:///Standard.C69.MergeSaveClose

在我这样做之前,我需要检查目录 $HOME/.config/libreoffice/4/user/basic/Standard/.

中是否存在宏文件 c69.xba

问题是上面的数字“4”在我看来与版本有关。另一个问题是该数字与 libreoffice --version 返回的主版本号不完全匹配,它输出:

LibreOffice 5.4.5.1 40m0(Build:1)

到目前为止我编码的是:

# check the macro .config/libreoffice/*/user/basic/Standard/c69.xba is present
[ -f $HOME/.config/libreoffice/*/user/basic/Standard/c69.xba ] || {
    echo "$cmd: missing file basic/Standard/c69.xba"
    exit 1
}

使用“*”匹配任何版本,但是当出现第二个目录时,如.config/libreoffice/{4,5}/user/basic/Standard,我的代码将不再有效。

我的问题是:如何(从命令行)获取包含当前版本 libreoffice 使用的宏的目录的正确路径,而不使用“*”?

从上面 Aserre 关于 LibreOffice 配置路径的任意字符的评论开始,我选择 select 最近创建的 LibreOffice 配置文件,使用 -t ls 命令的选项。所以我找到了下一个解决方案:

# check the macro .config/libreoffice/*/user/basic/Standard/c69.xba is present
path=$(ls -dt "$HOME"/.config/libreoffice/* | head -n1) # take only first line of output of ls -dt
[ -f "$path/user/basic/Standard/c69.xba" ] || {
    echo "$cmd: missing file basic/Standard/c69.xba"
    exit 1
}