SSH를 통해 bash cmd에서 python cmd를 실행하는 방법

SSH를 통해 bash cmd에서 python cmd를 실행하는 방법

bash 터미널에서 다음 명령을 실행하면 정상적으로 작동합니다.

$ bash -c "python -c \"print 'helloworld'\""---> 안녕하세요 세상

그러나 ssh를 통해 이 작업을 수행하려고 하면 결과가 없습니다. 누구든지 이 문제에 대해 알려줄 수 있습니까?

$ ssh [email protected] "bash -c \"python -c \"print 'helloworld'\"\""--> 아무것도

답변1

ssh [email protected] "$(cat <<'EOT'
bash -c "python -c \"print 'helloworld'\""
EOT
)"

이와 같은 여러 내장 명령의 참조 악몽을 피하는 데 도움이 되는 간단한 기능/유틸리티에 대한 아이디어가 있습니다. 계속 지켜봐 주시기 바랍니다 ;-)

답변2

당신은 그것을 잘못 인용했습니다. 주문

ssh [email protected] "bash -c \"python -c \"print 'helloworld'\"\""

원격 측에서 실행하십시오.

bash -c "python -c "print 'helloworld'""

이는 다음과 같습니다.

bash -c "python -c print" 'helloworld'

실행되어 python -c print빈 줄을 인쇄합니다. (참고: helloworld다음과 유사한 동작이것.)


올바르게 인용하려면 백슬래시가 더 필요합니다. 이것:

ssh [email protected] "bash -c \"python -c \\\"print 'helloworld'\\\"\""

원격 측에서 다음 명령을 실행합니다.

bash -c "python -c \"print 'helloworld'\""

이것이 바로 당신이 원하는 것입니다.

확인하다슈퍼유저에 대한 질문. 비슷한 상황에서 도움이 되도록 설계되었습니다.


bash -c전혀 필요하지 않을 가능성이 있습니다. 이 코드는 로컬 셸에서 실행되어야 합니다.

python -c "print 'helloworld'"

그래서 이것은 작동할 수 있습니다:

ssh [email protected] "python -c \"print 'helloworld'\""

아마도 SSH 서버가 meeee가 선택한 쉘을 로그인 쉘로 사용하여 명령을 실행하기 때문일 것입니다. 특별한 경우에는 python -c제대로 작동하지 않을 수도 있습니다. 하지만 실행될 것으로 예상하므로 bash -c실행도 실행되어야 합니다.python -c

관련 정보