使用shell参数扩展构造文件路径

时间:2013-10-14 17:59:13

标签: bash shell brace-expansion

我需要根据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的值相同。我如何使用参数扩展来实现这一点,最好只需一行。

2 个答案:

答案 0 :(得分:2)

以下应该适合你:

[[ $MY_FILE_NAME ]] && MY_PATH="$WORKING_DIR/$MY_FILE_NAME" || MY_PATH="$WORKING_DIR"

答案 1 :(得分:2)

试试这个:

MY_PATH=${WORKING_DIR}${MY_FILE_NAME:+/}${MY_FILE_NAME:-}