Não consigo renomear um arquivo usando o terminal se ele veio de um parâmetro

1

Estou automatizando algumas tarefas de implantação com um script .sh, mas em algum momento preciso renomear um arquivo, mas ele não está funcionando. A alteração do arquivo pode ser diferente, mas o postfix é o mesmo. Vamos dar uma olhada neste exemplo para você entender o que é exatamente o que eu preciso:

read folderName
#... at somepoint this scripts creates a file called foldername-1.0-SNAPSHOT.war (I need to rename it)
oldExecutableName ="" + $folderName + "-1.0-SNAPSHOT.war" 
newExecutableName ="" + $folderName + ".war"
[[ -f "${newExecutableName}" ]] &&
mv -v ${oldExecutableName}   ${newExecutableName}

Exemplo:

Dado entrada filename

O nome desejado para o arquivo é: filename.war

O texto -1.0-SNAPSHOT deve ser removido do nome do arquivo

por alguma razão isso não está funcionando, e eu acho que é porque o parâmetro estou lendo do terminal. Alguém pode me dar uma mão para renomear isso?

    
por sfrj 12.10.2013 / 20:01

1 resposta

1

Você pode usar:

read -p "Enter Filename :- " finalFinalName
remove_extention='-1.0-SNAPSHOT.war'
addExtention='.war'

[[ -f "${finalFinalName}" ]] && # if file exists then rename 
mv -v $finalFinalName   ${finalFinalName%$remove_extention}${addExtention}

Se houver espaço em branco no arquivo, aspas duplas, por exemplo. "${var}"

${finalFinalName%.*} , isso removerá a extensão

    
por Rahul Patil 12.10.2013 / 20:05