Java가 실행될 Linux 머신의 로컬 dbus를 통해 Java 데몬을 활용해야하는 스크립트를 작성하고 있습니다. 이 데몬은 특히 튜토리얼의 배열을 반환 할 것이므로 나중에 코드를 통해 구문 분석하고 사용할 수 있습니다. 이 코드가 여러 컴퓨터에서이 값을 한꺼번에 가져 오길 원하지만 문제는 stdout의 출력을 구문 분석하여 ssh로 처리되는 터미널에서 반환 값/종료 값을 실제로 가져 오는 유일한 방법입니다. 나는 이것을하고 싶지 않다. 나는 실제 변수를 얻는 것을 선호한다. 지금 당장이 있습니다 :파이썬에서 쉘에서 변수를 가져 오는 방법은 무엇입니까?
import os
message = "import dbus, sys\nbus=dbus.SystemBus()\nremote_object=bus.get_object('daemon.location', '/daemon')\ncontroller=dbus.Interface(remote_object, 'daemon.path')\nsys.exit(controller.getValue())"
x = os.system('echo \-e "%s" \| ssh %s python' %(message, ip))
이 예제에서 나는 "controller.getValue()"를 실행할 때 튜플의 배열을 반환합니다. 그 배열을 얻을 수있는 방법을 찾으려고 노력 중입니다. popen과 같은 것을 사용하면 stdout의 출력을 파일로 파이프하고 그것을 여러분에게 반환합니다. 그러면 여러분은 배열과 같은 문자열을 얻을 수 있습니다. 알아 내려고하는 것은 실제 배열을 얻는 방법입니다. 마치 ssh tty를 종료 할 때 반환 된 변수를 내 코드로 전달하는 것과 같습니다. 어떤 아이디어?
: 출력을 구문 분석 변수로 배치. 그것을 피할 방법이 없습니다. –