Uciekająca zmienna w Cat


5

Próbuję napisać skrypt powłoki przez ssh za pomocą zachęty bash. Powłoka nalega jednak na interpretację dowolnej zmiennej, którą chcę napisać, zamiast zapisywać ją bezpośrednio do pliku. Na przykład, cat <<EOF >checkup.sh\n'$command'EOF jest po prostu napisane jako '' do pliku. Jak mogę uzyskać $command zamiast tego napisać? Próbowałem każdej praktycznej metody ucieczki, o której mogę pomyśleć.

Jeśli coś zmieni, robię to za pomocą PHP phpseclib .

Odpowiedzi:


7

Spróbuj zacytować pierwszy EOF, np.

cat <<'EOF'
>checkup.sh\n'$command'
EOF

Zostało to wyjaśnione na stronie man bash (1) w sekcji Here Documents.


Właściwie potrzebowałem INVERSE tego (miałem skrypt z „EOF”, potrzebny do obsługi zmiennych) i to wskazało na to. Dzięki!
Samurai Ken
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.