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

ip addr addне может создавать новые устройства (и, вероятно, это не входило в ваши намерения ). Поэтому сначала вам нужно выяснить, к какому существующему устройству вы хотите добавить псевдоним, а затем использовать его имя вместо eth0.

0
03.11.2019, 22:02
1 ответ

Bash не вставляет дополнительные кавычки, как это сделали вы здесь:

OPT="-aPh -e ssh --rsync-path='sudo rsync'"
                              ^          ^

Это присвоение устанавливает OPTв строку -aPh -e ssh --rsync-path='sudo rsync'. Когда это раскрывается в командной строке rsync, оно разделяется пробелом на пять различных аргументов :aPh, -e,ssh--rsync-path='sudoи rsync'.

То, что вы видите '\''в выводе bash -x, является представлением аргументов, содержащих кавычки. Это немного трудно читать, но 'foo'\''bar'является эквивалентом"foo'bar"(в одинарных -кавычках, он имеет две строки в одинарных -кавычках и экранированную одинарную кавычку посередине.)

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

См.:

2
28.01.2020, 02:29

Теги

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