SSH対話型およびコマンドリダイレクトの動作が一貫していない

SSH対話型およびコマンドリダイレクトの動作が一貫していない

これらの職業、

ssh remote 'echo hi > hi.txt'
echo hi | ssh remote 'cat > hi.txt'

しかし、これはうまくいきません

ssh remote sh -c 'echo hi > hi.txt'

「hi」を含むhi.txtというファイルをリモートで生成したいと思います。代わりに私は得るファイル名はhi.txtです。

以下は、対話型SSHセッションで実行するときに予想される動作を提供します。

sh -c 'echo hi > hi.txt'

SSHとリダイレクトについてどのような誤解がありますか?

ベストアンサー1

あなたのローカルシェルがあなたの引用符を削除していると思います。あなたは試すことができます

ssh remote sh -c '"echo hi > hi.txt"'

sshを使用してリモートコマンドを送信するときに送信された各行を読み取るための2つのシェルがあります。ローカルシェルとリモートシェル。

これについての良い説明は以下にあります。リモートシェルのUnix / Linuxシェルリファレンス

おすすめ記事