мне нужно PRINTF простого скрипта, и перенаправить вывод в файл, но когда я делаю это:Как распечатать восклицательный знак в bash?
printf "#!/bin/bash\ntouch /tmp/1234567890_$RUN" > /tmp/password-change-script_$RUN.sh
Я получаю эту ошибку:
Баша:!/Bin/баш \ ntouch: событие не найден
Если я убегаю восклицательный знак:
printf "#\!/bin/bash\ntouch /tmp/1234567890_$RUN" > /tmp/password-change-script_$RUN.sh
Затем экранирующий символ по-прежнему присутствует в файле.
cat /tmp/password-change-script_$RUN.sh
#\!/bin/bash
touch /tmp/1234567890_111
Кстати, в этом конкретном случае #!/Bin/bash ДОЛЖЕН быть в файле. По какой-то причине двоичный файл, который выполняет скрипт, в противном случае не будет читать файл.
ах, это имеет смысл. – David
хорошо catch ................! – Satish
@David: Я обновил свой ответ еще несколькими альтернативами. –