2>&1 << EOLとはどういう意味ですか?

2>&1 << EOLとはどういう意味ですか?

次のシェルスクリプトがあります。 1つのホストでうまく機能します。 2番目では動作しません。 2>&1 << 'EOF' を削除すると、2 番目のホストで正常に動作します。 2>&1 << 'EOF'とはどういう意味ですか? 1つのホストでは正常に動作しますが、2番目のホストでは機能しないのはなぜですか?

ありがとう

start () {
    case ${1} in
     APP1)
        ssh -q user@host 2>&1 << ‘EOF’
        exit $?
EOF
     ;;
     APP2)
        ssh -q user@host 2>&1 << ‘EOF’
        exit $?
EOF
     ;;
}

ベストアンサー1

問題は私の外のどこかにあります。

2つの異なるホストがあり、スクリプトを使用しているので、まずsshネットワークを調べることをお勧めします。あるホストは宛先ホストに接続され、もう一方のホストは接続されていない可能性があります。

-qsshコマンドのキーは、sshが提供できるほとんどの警告と診断を抑制し、2>&1stderrをstdoutにリダイレクトしますが、すでにこれを抑制しているため、リダイレクトは意味がありません。

犯人はここにありません << 'EOF'。少なくとも私はそれがどうか想像できません。ホストのシェルの1つが実際に破損し、どうすればいいかわからない場合ここのドキュメント引用された変形から。

おすすめ記事