Подтвердить что ты не робот

Bash конкатенация переменных

глупый вопрос, без сомнения, я пытаюсь добавить переменную в середину переменной, поэтому, например, в PHP я бы сделал это:

$mystring = $arg1 . '12' . $arg2 . 'endoffile';

поэтому выход может быть 20121201endoffile, как я могу добиться того же в linux bash script?

4b9b3361

Ответ 1

Попробуйте сделать это, нет специального символа для конкатенации в bash:

mystring="${arg1}12${arg2}endoffile"

объяснения

Если вы не поместите скобки, вы спросите , чтобы объединить $arg112 + $argendoffile (я думаю, это не то, что вы просили), как в следующем примере:

mystring="$arg112$arg2endoffile"

Скобки являются разделителями для переменных, когда это необходимо. Когда это не нужно, вы можете использовать его или нет.

другое решение

(менее портативное: требуется bash > 3.1)
$ arg1=foo
$ arg2=bar
$ mystring="$arg1"
$ mystring+="12"
$ mystring+="$arg2"
$ mystring+="endoffile"
$ echo "$mystring"
foo12barendoffile

См. http://mywiki.wooledge.org/BashFAQ/013