繁体   English   中英

bash shell脚本将字符串与句点char连接起来

[英]bash shell script concatenate string with period char

我正在尝试创建以下字符串

Beta-3.8.0

但是shell脚本总是省略. 不管我怎么做

echo "$readVersion"

if [ -z $readVersion ]
then
    echo "readVersion is empty"
    exit 1
fi;

IFS=.
set $readVersion
newVersion=$(echo "$2 + 1" | bc)
newBranch="Beta-$1.$newVersion.$3"
echo $newBranch

印刷品:
3.8.0
Beta-3 9 0

我也尝试过

newBranch='Beta-'$1'.'$newVersion'.'$3
or
newBranch="Beta-{$1}.{$newVersion}.{$3}"

虽然这似乎显示正确的值echo "$1.$newVersion.$3"为什么变量不起作用?

我需要该变量稍后在脚本中使用...

完成后,您可以保存和还原IFS

oldIFS=$IFS
IFS=.
set $readVersion
newVersion=$(echo "$2 + 1" | bc)
IFS=$oldIFS
newBranch="Beta-$1.$newVersion.$3"
echo "$newBranch"

或者您可以在打印时引用:

echo "$newBranch"

前者是IMO的一个好主意,因为它传达了您的意图,并将使其余代码使用“正确的” IFS。 后者只是解决了这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM