2>&1 << EOL은 무엇을 의미하나요?

2>&1 << EOL은 무엇을 의미하나요?

다음 쉘 스크립트가 있습니다. 하나의 호스트에서는 잘 작동합니다. 두 번째에서는 작동하지 않습니다. 2>&1 << 'EOF' 를 제거하면 두 번째 호스트에서 제대로 작동합니다. 2>&1 << 'EOF'가 무슨 뜻인가요? 한 호스트에서는 제대로 작동하지만 두 번째 호스트에서는 작동하지 않는 이유는 무엇입니까?

감사해요

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

문제는 저 밖 어딘가에 있습니다.

서로 다른 두 개의 호스트가 있고 스크립트를 사용하고 있으므로 ssh먼저 네트워크를 살펴보는 것이 좋습니다. 한 호스트는 대상 호스트에 연결되고 다른 호스트는 연결되지 않을 수 있습니다.

-qssh 명령의 키는 ssh가 제공할 수 있는 대부분의 경고 및 진단을 억제하고 2>&1stderr을 stdout으로 리디렉션하지만 이미 이를 억제했으므로 리디렉션은 의미가 없습니다.

범인은 여기에 없습니다 << 'EOF'. 적어도 나는 그것이 어떨지 상상할 수 없습니다. 호스트의 쉘 중 하나가 실제로 손상되어 어떻게 해야할지 모르는 경우가 아니면여기 문서인용된 변형에서.

답변2

문제는 SSH 연결 문제와 관련이 있습니다.

관련 정보