Потому что на втором примере (неправильном) вы используете неправильные кавычки. Кавычки используются, чтобы указать, что все, что выходит из этой переменной, должно рассматриваться как строка, и вы добавили две переменные в одну из них. каждый из них должен быть разделен, потому что, как и это, он говорит свою одну переменную, поэтому sed видит одну переменную не две. Так, например, позволяет сказать:
v1=123
v2=456
, как у вас на втором примере СЭД будет видеть это: «123456», хотя то, что вы хотите СЭД, чтобы увидеть это две переменные, один, чтобы иметь 123 и второй у кого есть 456. Вот почему вы должны иметь их в отдельных цитатах! Надеюсь, я объяснил это достаточно хорошо, чтобы вы поняли !!
PS
То, что вы на самом деле на втором примере, вы могли бы использовать его в какой-то момент, если вы хотите concutenate две переменные, и добавить их в другой в виде строки :)
UPDATE
Так давайте есть пример здесь .....
v1=123
v2=456
CASE1="$v1" "$v2"
CASE2="$v1 $v2"
echo CASE1
echo CASE2
Для CASE1 выход будет 123456, так как для CASE2 выход будет 123 456 ..... Теперь вы получаете разницу? Единственный способ сделать это в обоих направлениях и распечатывать то же самое было бы это .....
v1=123
v2=456
CASE1="$v1" "$v2"
CASE2="$v1$v2"
, имеющий БЕЗ Случай 2. пространства между переменными ...
Вы должны ввести regex, как этот 'sed '$ v1' $ v2 '" <<< "abc" ' – taras
Я пробовал это, и он дает то же сообщение об ошибке. – scolfax
@scolfax Вы должны узнать о словарях: http://mywiki.wooledge.org/WordSplitting – andlrc