Попробуйте это (я тестировал на своей машине, и похоже, что это работает-- ну, у меня не было дубликатов, чтобы удалить их. ...):
ssh root@10.100.10.26 "awk '!seen[\$0]++' /root/.ssh/authorized_keys > /root/.ssh/authorized_keystemp"
Ваша "
-попытка цитирования не сработала, так как вы не прорезали $
в $0
, что привело к тому, что она была расширена до чего-то вроде bash
.
Ваша попытка процитирования не сработала, потому что 'foo\'какой-то thing\'foo'
не означает того, что вы думаете, что он делает. \
-эскансы не интерпретируются внутри строк с одиночными кавычками. Так что на самом деле это несбалансированные кавычки и два аргумента; первый - foo\some
, а второй - thing'foo
, но он не завершен, потому что последняя '
начинает новую строку, заключенную в одну кавычки.
Побег раковины может быть занозой, особенно с двойной капитуляцией. Отправка скрипта оболочки (с помощью sftp
, scp
и т.д.) сначала, а затем запуск, который часто бывает проще.