Я не могу переименовать файл, используя терминал, если он пришел из параметра

Я автоматизирую некоторые задачи развертывания с помощью сценария .sh, но в какой-то момент мне нужно переименовать файл, но он не работает. Изменение файла может быть другим, но постфикс такой же. Давайте посмотрим на этот пример, чтобы вы поняли, что именно мне нужно:

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}

Пример:

Заданный вход filename

Желаемое имя для файла is: filename.war

Текст -1.0-SNAPSHOT должен быть удален из имени файла

по какой-то причине это не работает, и я думаю, что это потому, что параметр я чтение из терминала. Может ли кто-нибудь дать мне руку, чтобы переименовать это?

1
задан 15.04.2020, 11:30

1 ответ

Вы можете использовать:

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}

Если в файле есть пробел, тогда двойные кавычки переменной, например. "${var}"

${finalFinalName%.*} это удалит расширение

1
ответ дан 15.04.2020, 11:30
  • 1
    Проверьте теперь, я обновил.. – Robert Monfera 15.04.2020, 11:31
  • 2
    не проблема.. просто небольшие изменения требуются.. ${finalFinalName%.*} – callum 15.04.2020, 11:31
  • 3
    @sfrj, Вы сталкиваетесь с какой-либо проблемой? – tomekwi 15.04.2020, 11:31
  • 4
    Я сделал немного ошибки в своем вопросе. У меня уже есть расширение. Я должен удалить его, в именно это я нуждаюсь. – Kangur 15.04.2020, 11:32
  • 5
    Я думаю, что я близок, но не являюсь точно им. Посмотрите обновление моего вопроса. Я, снова выражая неправильно. Я don' t хотят сказать расширение, что я хочу сказать, заканчивается (не сразу после точки). – jAndy 15.04.2020, 11:32

Теги

Похожие вопросы