Создайте путь к файлу, используя расширение параметров оболочки

Мне нужно построить абсолютный путь к файлу на основе значений двух переменных в 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 ответа

Решение

Следующее должно работать для вас:

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

Попробуй это:

MY_PATH=${WORKING_DIR}${MY_FILE_NAME:+/}${MY_FILE_NAME:-}
Другие вопросы по тегам