의사 터미널이 필요한 bash 스크립트에서 Python의 os.popen 명령 실행

의사 터미널이 필요한 bash 스크립트에서 Python의 os.popen 명령 실행

나는 다음을 사용하는 Python 스크립트를 가지고 있습니다.

size = os.popen('stty size', 'r').read().split()

텍스트를 멋지게 인쇄할 수 있도록 터미널 창 크기를 가져옵니다. 내 문제는 bash 스크립트를 통해 이 Python 스크립트를 실행해야 할 때 발생합니다. rosrun백그라운드에서(&를 사용하여) 이 Python 스크립트를 호출하는 bash 스크립트가 있는데 오류가 발생합니다.

stty: 'standard input': Inappropriate ioctl for device

둘러본 후 stty터미널(또는 의사 터미널)이 필요하고 내가 실행 중인 bash 스크립트가 이를 제공하지 않기 때문이라는 것을 이해했습니다. 루트 사용자를 사용하여 명령을 실행할 수 없기 sudo때문에 할 수 없습니다 .ros

script -q -c명령을 사용해 도 도움이 되지 않습니다. os.popenPython 스크립트의 명령을 대체 명령으로 변경 하지 않고도 이 문제를 해결할 수 있는 방법이 있습니까 ? 현재는 os.popen 앞에 인쇄를 추가하고 expectbash 스크립트에서 사용할 생각입니다 .

관련 정보