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