Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。1,424件3ローカルで定義、初期化した変数を使ってリモートシェル上でsedコマンドを使いたいと考えております。置換が実行されることが理想です。コメントありがとうございます。そこで、置換分(s/.../.../g)をシングルクオートで囲むことで置換前に変数が評価され理想通りの結果となりました。組み合わせてやろうとすると、いくつか制御文字が使われた場合などで、バグが発生しています。あるならば、ひとまず以下で達成できます。制御文字が入ってきた時点で正しく動作しなくなってしまいます。環境変数から直接文字列を参照できます。引数をスペースでつなげて文字列として対象ホストで実行します。これを正しく取り扱うために、環境変数のセットコマンドにはエスケープを施します。これをスクリプトにすると次。\'"${TARGET_FILE}"\'スクリプトの解説を書こうと思いましたが、このスクリプトを書くので力尽きてしまったので、ひとまず動くものを共有しています。個の銅バッジfumiyasさんの指摘の趣旨は「制御文字が入ると誤動作する」ことではなく、「変数展開がどこでどのように行われてるのか意識せよ」という事だと思います。|4sshでリモート側にローカルの環境変数を渡すためには双方に設定が必要です。stringまた、現状のスクリプトではstringはexportされてないので子プロセスからは参照されません。string="hello"として環境変数として設定してください。個の銅バッジ6これは変数を渡しているわけではなく、ローカルのシェルが変数展開して、その結果がリモートに渡されています。どこで何がどのように解釈するのかをちゃんと意識しないとバグ(脆弱性を含む)の原因になりますよ。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。