Reputation: 15887
I want append to a string so that every time I loop over it, it will add "test" to the string.
Like in PHP
you would do:
$teststr = "test1\n"
$teststr .= "test2\n"
echo = "$teststr"
Returns:
test1
test2
But I need to do this in a shell script
Upvotes: 158
Views: 322679
Reputation: 21
thank-you Ignacio Vazquez-Abrams
i adapted slightly for better ease of use :)
placed at top of script
NEW_LINE=$'\n'
then to use easily with other variables
variable1="test1"
variable2="test2"
DESCRIPTION="$variable1$NEW_LINE$variable2$NEW_LINE"
OR to append thank-you William Pursell
DESCRIPTION="$variable1$NEW_LINE"
DESCRIPTION+="$variable2$NEW_LINE"
echo "$DESCRIPTION"
Upvotes: 2
Reputation: 212228
In classic sh, you have to do something like:
s=test1
s="${s}test2"
(there are lots of variations on that theme, like s="$s""test2"
)
In bash, you can use +=:
s=test1
s+=test2
Upvotes: 277
Reputation: 11
#!/bin/bash
msg1=${1} #First Parameter
msg2=${2} #Second Parameter
concatString=$msg1"$msg2" #Concatenated String
concatString2="$msg1$msg2"
echo $concatString
echo $concatString2
Upvotes: 1
Reputation: 321
#!/bin/bash
message="some text"
message="$message add some more"
echo $message
some text add some more
Upvotes: 16
Reputation: 342313
$ string="test"
$ string="${string}test2"
$ echo $string
testtest2
Upvotes: 34
Reputation: 798536
teststr=$'test1\n'
teststr+=$'test2\n'
echo "$teststr"
Upvotes: 16