我正在使用 .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
所需的文件名称为:filename.war
应从文件名中删除文本 -1.0-SNAPSHOT
由于某种原因,它不起作用,我认为这是因为我从终端读取的参数。有人能帮我重命名它吗?
答案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%.*}
这将删除扩展