Как объединить две переменные bash (одну, включающую в себя путь и одну, включающую имя файла) внутри команды bash?

У меня есть входной каталог (INPUT_DIRECTORY=${PWD}/INPUT) и каталог для вывода для сохранения файлов в нем, команда bash (OUTPUT_DIRECTORY=${PWD}/Output) и файл (image-99.nii) должны быть записаны в OUTPUT_DIRECTORY. Я сохранил имя файла с его базовым именем в две переменные (name=image-99.nii и FILENAME=image-99)

for FILE in ${INPUT_DIRECTORY}/*.nii; do
    name="echo ${FILE##*/}"
    FILENAME=$(echo "$name" | cut -f 1 -d '.')
    ....

Как объединить OUTPUT_DIRECTORY и FILENAME таким образом, чтобы имя стало "image-99-N4.nii" , Я выполнил следующую команду, но не сработал

OUTPUTNAME="${OUTPUT_DIRECTORY}/${FILENAME}_N4.nii"

Когда я ~$ $OUTPUTNAME, получаю ошибку bash: /echo: No such file or directory

0
задан 20 June 2018 в 13:05

1 ответ

Проблемой не является строка с OUTPUTNAME=, который корректен.

name="echo ${FILE##*/}"

должен быть

name="${FILE##*/}"

иначе, echo будет часть имени файла, которое является, очевидно, не, что Вы хотите.

Но так или иначе. ~$ $OUTPUTNAME будет только работать, если файл будет сделан исполняемым файлом. Вы могли бы хотеть echo "$OUTPUTNAME" или ls ....

2
ответ дан 29 October 2019 в 02:16

Другие вопросы по тегам:

Похожие вопросы: