SSH를 통해 명령을 실행할 때 모호한 리디렉션

SSH를 통해 명령을 실행할 때 모호한 리디렉션

SSH를 통해 원격 서버의 백그라운드에서 프로그램을 시작하려고 하는데 프로그램이 있는 디렉터리에서 실행해야 합니다.

나는 다음을 시도합니다

ssh -q user@server 'cd directory && command > /dev/null 2>&1 &'

하지만 이로 인해 오류가 발생합니다.

Ambiguous output redirect.

/dev/null그렇지 않으면 ssh 호출이 완료되지 않기 때문에 출력을 다음으로 리디렉션합니다 .

{}따옴표를 사용 하거나 사용하지 않고 명령을 래핑하려고 시도했지만 ()동일한 오류가 발생합니다.

이 문제를 어떻게 해결할 수 있나요?

답변1

상술 한 바와 같이댓글에서, 원격 사용자의 로그인 쉘은 csh또는 입니다 tcsh. 이러한 쉘은 다양한 POSIX 쉘과 매우 다른 구문, 특히 리디렉션 구문을 가지고 있습니다.

/dev/null표준 출력 및 표준 오류를 이러한 쉘로 리디렉션하려면 다음을 사용하십시오 >& /dev/null.

ssh -q user@server 'cd directory && command >& /dev/null &'

또는 POSIX 셸을 명시적으로 호출하여 다음 명령을 실행합니다.

ssh -q user@server 'sh -c "cd directory && command >/dev/null 2>&1" &'

관련 정보