2012-02-09 4 views
1

私はスクリプトのパラメータとしてシェルに既存のウェブサイトのHTMLを渡そうとしていますが、私はそれを正しくエスケープする方法がわかりません。HTMLをシェルに渡すには?

'$'や '!'などの文字があるため、一重引用符または二重引用符で囲んでも機能しません。シェルは文字通り解釈します。

+0

手渡しでも、スクリプトで渡していますか?そして、どんな命令に? – Cameron

+1

なぜこの正規表現は正規表現ですか? – PeeHaa

+0

NodeJSのchild_process.execを使用してシェルに渡します。手でも試してみましたが、私は次のようなエラーが出ます。構文エラー:予期しないリダイレクト。 – user216171

答えて

1

この場合、ファイルをシェルスクリプトにパイプするのがベストプラクティスです。

簡単なバージョン:コンテンツを一時ファイルに書き出し、ファイル名でシェルスクリプトを起動します。シェルスクリプトは入力を読み込み、その後にファイルを削除します。

入力をファイルにパイプすると、一時ファイルは必要ありません。

+0

また、シェルスクリプト内で 'trap'コマンドを使用して、一時ファイルを削除してください。 'tmpfile =/tmp/foo。$$;トラップ "rm -f $ tmpfile" 0 1 2 5 15'は私の好きな行の一つです。 – Graham

関連する問題