3

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

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

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

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

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

sh: !': event not found

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

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

1 ответ1

2

Обновить

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .