[英]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.