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