1

我需要根据 bash 中两个变量的值构造一个绝对文件路径。我有以下两个变量:

MY_FILE_NAME=myfile-1.0.0.80234.txt ### This variable is NOT guaranteed to be set
WORKING_DIR=/var/my_working_dir     ### This variable is guaranteed to be set
MY_PATH=<Some parameter expansion magic>

如果设置了变量 MY_FILE_NAME,则 MY_PATH 应具有以下值:

/var/my_working_dir/myfile-1.0.0.80234.txt

如果未设置变量 MY_FILE_NAME,则 MY_PATH 应与 WORKING_DIR 的值相同。我如何最好在一行中使用参数扩展来实现这一点。

4

2 回答 2

2

尝试这个 :

MY_PATH=${WORKING_DIR}${MY_FILE_NAME:+/}${MY_FILE_NAME:-}
于 2013-10-14T18:52:00.547 回答
2

以下应该为您工作:

[[ $MY_FILE_NAME ]] && MY_PATH="$WORKING_DIR/$MY_FILE_NAME" || MY_PATH="$WORKING_DIR"
于 2013-10-14T18:09:31.443 回答