_
é válido para um nome de variável e, portanto, é considerado parte do nome.
mv "$file" "${prefix}_${file}"
Eu quero concatenar um prefixo para o arquivo dentro do script sh
. Por favor, sugira. Está correto?
Por exemplo:
file=a.txt
prefix=b
mv $file $prefix_$file
echo $prefix_$file
vai me dar saída como:
b_a.txt
_
é válido para um nome de variável e, portanto, é considerado parte do nome.
mv "$file" "${prefix}_${file}"
Você pode usar:
prefix=b_
mv "$file" "$prefix$file"
Como @Ignacio escreveu, _
é um caractere válido para um nome de variável, portanto, no seu exemplo, o shell está procurando por uma variável chamada $prefix_
, que não existe.
Tags unix