A atribuição da variável está correta, mas você tem um erro de sintaxe no seu comando que usa a variável:
O que você precisa digitar é:
cp file.txt "${TARGET}/some folder with spaces/file.txt"
cp file.txt "$TARGET/some folder with spaces/file.txt"
Observe as alterações duas :
-
Aspas duplas
"..."
em vez de aspas simples'...'
, porque as aspas duplas permitem a expansão da variável bash, enquanto as aspas simples proíbem isso e mantêm a sequência como ela é. -
Como a variável está diretamente incorporada na seqüência de caminho e nenhum espaço é antes e depois do nome, precisamos de${variable}
em vez de apenas$variable
aqui. As chaves enroladas informam ao bash exatamente onde o nome da variável termina, caso contrário, isso não ficaria claro.As chaves não estão erradas, mas também não são necessárias aqui, pois o próximo caractere após o nome da variável é um
/
, que não é permitido no próprio nome e, portanto, separa o nome do resto the string.
Graças à resposta do @heemayl para corrigir isso!