Sto cercando di interpolare le variabili all'interno di una eredità bash:
var=$1
sudo tee "/path/to/outfile" > /dev/null << "EOF"
Some text that contains my $var
EOF
Questo non funziona come mi aspetterei ( $var
viene trattato alla lettera, non espanso).
Devo usare sudo tee
perché la creazione del file richiede sudo. Fare qualcosa del tipo:
sudo cat > /path/to/outfile <<EOT
my text...
EOT
Non funziona, perché >outfile
apre il file nella shell corrente, che non utilizza sudo.
''
), ma non la citazione del delimitatore attiva l'espansione (come se fosse in""
). Tuttavia, la tua intuizione è corretta in Perl, dove un ereditario con identificatore a virgoletta singola si comporta come se fosse tra virgolette singole, uno con un identificatore tra virgolette doppie come se fosse tra virgolette doppie e uno con identificatore con segno di spunta indietro come in backtick ! Vedi: perlop: << EOF