如何在 bash 命令中组合两个 bash 变量(一个包含路径,一个包含文件名)?

如何在 bash 命令中组合两个 bash 变量(一个包含路径,一个包含文件名)?

我有一个输入目录 ( INPUT_DIRECTORY=${PWD}/INPUT) 和一个用于将文件保存到其中的输出目录,需要在 中写入bash 命令 ( OUTPUT_DIRECTORY=${PWD}/Output) 和一个文件 ( ) 。我已将文件名及其基本名称保存到两个变量 (和)中image-99.niiOUTPUT_DIRECTORYname=image-99.niiFILENAME=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

答案1

问题不在于带有 的行OUTPUTNAME=,它是正确的。

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

应该

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

否则,echo将成为文件名的一部分,这显然不是您想要的。

但无论如何。~$ $OUTPUTNAME只有在文件可执行时才会起作用。你可能需要echo "$OUTPUTNAME"ls ...

相关内容