LINUX.ORG.RU

История изменений

Исправление EXL, (текущая версия) :

По прочтению треда вспомнилась нетленка: https://habr.com/ru/post/321652/

Особенно, это:

Как зайти на хост a@a, с него — на b@b, с него — на c@c, с него — на d@d, а с него удалить файл /foo? Ну, это легко:

ssh a@a "ssh b@b \"ssh c@c \\\"ssh d@d \\\\\\\"rm /foo\\\\\\\"\\\"\""

Слишком много бекслешей, да? Ну, не нравится так, давайте чередовать одинарные и двойные кавычки, будет не так скучно:

ssh a@a 'ssh b@b "ssh c@c '\''ssh d@d \"rm /foo\"'\''"'

А между прочим, если бы вместо shell’а был Lisp, и там функция ssh передавала бы на удалённую сторону не строку (вот она, повёрнутость UNIX на тексте!), а уже распарсенный AST (abstract syntax tree), то такого ада бекслешей не было бы:

(ssh "a@a" '(ssh "b@b" '(ssh "c@c" '(ssh "d@d" '(rm "foo")))))

Когда наконец в Linux появится нормальный Shell, а не вот это вот?

Исходная версия EXL, :

По прочтению треда вспомнилась нетленка: https://habr.com/ru/post/321652/

Особенно, это:

Как зайти на хост a@a, с него — на b@b, с него — на c@c, с него — на d@d, а с него удалить файл /foo? Ну, это легко:

ssh a@a "ssh b@b \"ssh c@c \\\"ssh d@d \\\\\\\"rm /foo\\\\\\\"\\\"\""

Слишком много бекслешей, да? Ну, не нравится так, давайте чередовать одинарные и двойные кавычки, будет не так скучно:

ssh a@a 'ssh b@b "ssh c@c '\''ssh d@d \"rm /foo\"'\''"'

А между прочим, если бы вместо shell’а был Lisp, и там функция ssh передавала бы на удалённую сторону не строку (вот она, повёрнутость UNIX на тексте!), а уже распарсенный AST (abstract syntax tree), то такого ада бекслешей не было бы:

(ssh "a@a" '(ssh "b@b" '(ssh "c@c" '(ssh "d@d" '(rm "foo")))))