我想附加到一个字符串,以便每次我循环它,它将添加“测试”到字符串。
就像在 PHP中你会做的:
PHP
$teststr = "test1\n" $teststr .= "test2\n" echo = "$teststr"
返回:
test1 test2
但是我需要用一个 shell 脚本来完成这个操作
teststr=$'test1\n' teststr+=$'test2\n' echo "$teststr"
$ string="test" $ string="${string}test2" $ echo $string testtest2
在经典的 sh 中,你必须这样做:
s=test1 s="${s}test2"
(这个主题有很多变化,比如 s="$s""test2")
s="$s""test2"
在 bash 中,可以使用 + = :
s=test1 s+=test2
#!/bin/bash message="some text" message="$message add some more" echo $message
一些文字添加一些更多
VAR=$VAR"$VARTOADD(STRING)" echo $VAR
#!/bin/bash msg1=${1} #First Parameter msg2=${2} #Second Parameter concatString=$msg1"$msg2" #Concatenated String concatString2="$msg1$msg2" echo $concatString echo $concatString2
感谢 Ignacio Vazquez-Abrams
我稍微调整了一下,以便更容易使用:)
放在剧本的最上面
NEW_LINE=$'\n'
然后轻松地与其他变量一起使用
variable1="test1" variable2="test2" DESCRIPTION="$variable1$NEW_LINE$variable2$NEW_LINE"
或者 附上感谢信,威廉 · 珀塞尔
DESCRIPTION="$variable1$NEW_LINE" DESCRIPTION+="$variable2$NEW_LINE" echo "$DESCRIPTION"