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

관련 정보