Я пытаюсь написать скрипт оболочки через ssh через командную строку bash. Однако оболочка настаивает на интерпретации любой переменной, которую я хочу записать, вместо того, чтобы записывать ее напрямую в файл. Например, cat <<EOF >checkup.sh\n'$command'EOF
просто записывается как ''
в файл. Как мне $command
вместо этого записать? Я перепробовал все практические методы экранирования, которые только мог придумать.
Если это что-то меняет, я делаю это через PHP, используяphpseclib.
решение1
Попробуйте процитировать первое EOF
, например,
cat <<'EOF'
>checkup.sh\n'$command'
EOF
Это объясняется на странице руководства bash(1) в разделе «Документы здесь».