2010-02-12 8 views
71

Я хочу добавить строку так, чтобы каждый раз, когда я перебираю ее, вы добавляете «тест» к строке.Как вы добавляете к уже существующей строке?

Как и в PHP вы могли бы сделать:

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

вторит:

test1 
test2 

Но мне нужно сделать это в сценарий оболочки

ответ

127

В классическом ш , вам нужно сделать что-то вроде:

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

(есть много вариаций на эту тему, как s="$s""test2")

В Баш, вы можете использовать + =:

s=test1 
s+=test2 
8
teststr=$'test1\n' 
teststr+=$'test2\n' 
echo "$teststr" 
10
#!/bin/bash 
message="some text" 
message="$message add some more" 

echo $message 

часть текста добавить еще немного

+0

это, кажется, самый простой для чтения метод IMO –

0
#!/bin/bash 

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

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

echo $concatString 
echo $concatString2 
-3

ниже один лайнер

find . -name '*fghfil*' -exec bash -c 'mv $0 $0jkl ' {} \; 
+1

Спасибо за этот фрагмент кода, который может обеспечить некоторую непосредственную помощь. Правильное объяснение [значительно улучшило бы] (// meta.stackexchange.com/q/114762) его образовательное значение, показав * почему * это хорошее решение проблемы и сделало бы его более полезным для будущих читателей с похожими, но не идентичные вопросы. Пожалуйста, отредактируйте свой ответ, чтобы добавить объяснение, и укажите, какие ограничения и допущения применяются. Как бы то ни было, нет никаких признаков того, что это даже ответит на вопрос. –

Смежные вопросы