renomeia da extensão do arquivo não funciona [fechado]

2

Estou usando código como o seguinte para criar um arquivo de log usando as ferramentas de manipulação de strings do shell: Eu tenho um nome de arquivo e, no caso de um erro, preciso criar um arquivo de log com o erro.

Suponha que $fileName seja test.tmp :

echo ' l_error_msg' >> $UPLOAD/output/$fileName.err

Isso cria um arquivo chamado test.tmp.err .

Por isso, tentei o código abaixo para criar test.err :

echo ' l_error_msg' >> $UPLOAD/output/${$fileName%.*}.err

Mas isso não funciona.

    
por Anu 24.12.2015 / 10:12

2 respostas

1

Dada uma variável foo="bar.baz" , a sintaxe correta para remover .baz é ${foo%.*} :

$ foo="bar.baz"
$ echo ${foo%.*}
bar

Remova o $ extra e ele deve funcionar como esperado:

$ fileName="test.tmp"
$ echo ${fileName%.*}.err 
test.err
    
por 24.12.2015 / 10:19
0

Tente isso

echo ' l_error_msg' >> $UPLOAD/output/'echo $fileName|awk -F. '{print $1}''.err
    
por 24.12.2015 / 10:24