私はこの複数行の文字列(引用符を含む)を持っています:
abc'asdf"
$(dont-execute-this)
foo"bar"''
Bashのheredocを使用して変数にどのように割り当てますか?
改行を保存する必要があります。
文字列の文字をエスケープしたくないので、迷惑です...
"EOF"
変数のbashコメント "#"を介して呼び出された場合eval $VAR
、ここでは$ VARが1行として表示されるため、スクリプトの残りのすべてにコメントが付けられます。 ; #
複数行スクリプトでbash コメントを使用できるようにするには、eval call:
eval "$ VAR" ` でも変数を二重引用符で囲みます。
eval
このメソッドで問題が発生しeval
ましたが、設定ファイルで定義されているいくつかの変数を含むパッケージの一部であるため、追跡できませんでした。エラーメッセージ:/usr/lib/network/network: eval: line 153: syntax error: unexpected end of file
。別のソリューションに切り替えました。
'EOF'
で試しましたが、` in the content: if the second line has
cd`コマンドで改行をエスケープしました。「. sh :行X:cd:コマンドが見つかりません」; しかし、もし私が二重引用符を付けると"EOF"
、その場合、bash変数${A}
は文字列として保持されません(展開されます)。しかし、改行は保持されます-そして、私はcd
2行目でコマンドを実行する問題はありません(そして、「EOF」と「EOF」の両方はeval
、に保存されている一連のコマンドを実行するために、文字列変数)。乾杯!