Экранировать переменные для перехода в скрипт

Экранировать переменные для перехода в скрипт

В Bash я пытаюсь поместить в файл следующее содержимое:

for pid in $(ps -lef | grep ssh | grep 2048 | awk '{print $4}'); do kill -9 $pid; done

Неважно, как я пытаюсь это сделать, скажем, в FileA, это всегда заканчивается заменой переменных на реальные значения. У меня есть EOF и echo. Не повезло.

Моя конечная цель — получить FileA с содержимым однострочного текста.

решение1

Когда вы говорите «У меня EOF», я полагаю, вы имеете в виду, что вы попробовализдесь документ, но вы пробовали цитировать heredocслово?

cat <<'EOF' >FileA
for pid in $(ps -lef | grep ssh | grep 2048 | awk '{print $4}'); do kill -9 $pid; done
EOF

Если слово не заключено в кавычки, все строки документа подвергаются расширению параметров, подстановке команд и арифметическому расширению, последовательность символов \newline игнорируется, а для кавычек символов '\', '$' и '`' необходимо использовать '\'.

Связанный контент