
В 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 игнорируется, а для кавычек символов '\', '$' и '`' необходимо использовать '\'.