我正在开发一个函数,用于检查某些包是否已安装并优先选择自己的构建,这些路径存储在配置文件中。
因此该函数会得到如下输入
rsync
然后它继续形成一个名为
$bin_variable_name
其价值
RSYNC_BIN
在上面提到的配置文件中可能有这样的一行。
RSYNC_BIN="/home/<username>/Software/rsync"
因此,如果该文件位于函数的开头,则变量 $RSYNC_BIN 具有除 '' 之外的值。
我现在需要在 if 语句中检查这一点。不幸的是,我无法直接引用 $RSYNC_BIN,因为该函数应该适用于任何给定的输入。所以我需要以某种方式“评估”
$bin_variable_name
在 if 语句中,这样 bash 就不会执行
if [[ $bin_variable_name == '' ]]; then ...
反而
if [[ $<whatever comes from $bin_variable_name>_BIN = '' ]]; then ...
这可能吗?
谨此致谢。
答案1
和间接
$ bin_variable_name=RSYNC_BIN
$ RSYNC_BIN="/home/<username>/Software/rsync"
$ echo "${!bin_variable_name}"
/home/<username>/Software/rsync