bash добавляет значение в массив со встроенной переменной и одинарными кавычками

Утилита cat concatenates all its inputs into one data stream.

Давая ей два файла, она производит вывод, состоящий из полного содержимого первого файла, за которым следует полное содержимое второго файла, в таком порядке.

В вашем случае:

$ cat file1 file2 >file-1-and-2
3
02.04.2017, 21:43
1 ответ

Если это сработает:

rsync "${rsarg[@]}" --filter='merge /home/roger/home.rsync-filter' ...

Тогда я полагаю, что вы не хотите заключать в одинарные кавычки rsync . Здесь оболочка съедает их до того, как rsync их увидит. В других ваших примерах кавычки заключены в кавычки, поэтому внутренние остаются и передаются для просмотра rsync .

Так что пропускайте одинарные кавычки при построении массива:

rsarg+=("--filter=merge $srcff")

Обратите внимание, что с точки зрения оболочки в знаке равенства нет ничего особенного, и нет необходимости обрабатывать часть, которая идет после, иначе, чем часть перед . - foo = bar то же самое, что - foo = "bar" или "- foo = bar" , или даже - fo "o = ba" r .

4
27.01.2020, 21:18

Теги

Похожие вопросы