136

我想追加到一个字符串,这样每次我循环它时,它都会将“test”添加到字符串中。

就像PHP你会做的那样:

$teststr = "test1\n"
$teststr .= "test2\n"
echo = "$teststr"

回报:

test1
test2

但我需要在 shell 脚本中执行此操作

4

7 回答 7

248

在经典 sh 中,您必须执行以下操作:

s=test1
s="${s}test2"

(该主题有很多变化,例如s="$s""test2"

在 bash 中,您可以使用 +=:

s=test1
s+=test2
于 2010-02-12T07:16:14.747 回答
31
$ string="test"
$ string="${string}test2"
$ echo $string
testtest2
于 2010-02-12T06:53:18.703 回答
16
#!/bin/bash
message="some text"
message="$message add some more"

echo $message

一些文字添加更多

于 2010-02-16T20:36:44.227 回答
14
teststr=$'test1\n'
teststr+=$'test2\n'
echo "$teststr"
于 2010-02-12T06:52:35.730 回答
2
VAR=$VAR"$VARTOADD(STRING)"   
echo $VAR
于 2014-09-09T10:40:50.553 回答
1
#!/bin/bash

msg1=${1} #First Parameter
msg2=${2} #Second Parameter

concatString=$msg1"$msg2" #Concatenated String
concatString2="$msg1$msg2"

echo $concatString 
echo $concatString2
于 2016-12-25T17:08:27.750 回答
1

谢谢伊格纳西奥·巴斯克斯-艾布拉姆斯

为了更易于使用,我稍作调整:)

放置在脚本顶部

NEW_LINE=$'\n'

然后轻松地与其他变量一起使用

variable1="test1"
variable2="test2"

DESCRIPTION="$variable1$NEW_LINE$variable2$NEW_LINE"

或附加谢谢你 William Pursell

DESCRIPTION="$variable1$NEW_LINE"
DESCRIPTION+="$variable2$NEW_LINE"

echo "$DESCRIPTION"
于 2020-09-16T00:20:55.543 回答