Я не могу повторить эхо перепутанной строки в файл

Эта линия работает, как и ожидалось, сама по себе

(echo '@$X!'; sleep 3; echo '@$X!')

И мне нужно вставить эту строку в файл с помощью следующей команды, но она не работает. echoКоманда 'ed должна быть исполняемой.

echo "(echo '@$X!'; sleep 3; echo '@$X!') | mycmd" >> a

Продолжает возвращать эту ошибку

sh: !': event not found

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

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

1 ответ

Решение

Обновить

Моя первая мысль была неправильной. Явное цитирование взрыва (!) похоже на работу

echo "(echo '@$'\!; sleep 3; echo '@$'\!) | mycmd" > a
Другие вопросы по тегам