Python shell 交互返回结果被截断

2019-12-10 16:07:30 +08:00
 chenshun00

代码如下:

proc = subprocess.Popen(['ps -ef |grep java |grep -v grep'], stdout=subprocess.PIPE, shell=True)
proc.communicate()
retcode = proc.returncode

返回结果

root      1494     1  0 12 月 05 ?      00:04:51 java -jar -Dxxx=xx -Dxxx1=xx -Dxxx2=xx -Dxxx3=xx -Dxxx4=xx -Dxxx4222d

预期在 bash 上执行结果如下

[root@iZbp11om21c05wzu8e4tx0Z ~]# ps -ef |grep java |grep -v grep
root      1494     1  0 12 月 05 ?      00:04:51 java -jar -Dxxx=xx -Dxxx1=xx -Dxxx2=xx -Dxxx3=xx -Dxxx4=xx -Dxxx4222dsdfsdfsdfsdfsfdsfsdfsdfsdfsdfsdfsdfsdf=1 -Dxxx4222dsdfsdfsdfsdfsfdsfsdfsdfsdfsdfsdfsdfsdfx=1 -Dxxx4222dsdfsdfsdfsdfsfdsfsdfsdfsdfsdfsdfsdfsdt=1 -Dxxx4222dsdfsdfsdfsdfsfdsfsdfsdfsdfsdfsdfsdfsdfh=2 demo-0.0.1-SNAPSHOT.jar

请问下这个是什么问题导致的 :)

3276 次点击
所在节点    Python
4 条回复
keakon
2019-12-10 16:26:52 +08:00
改成 ps -efww
chenshun00
2019-12-10 16:38:28 +08:00
@keakon 因缺斯汀 , 这个确实可以,请问下这个是由于什么原因 :)
keakon
2019-12-10 16:48:09 +08:00
-w Wide output. Use this option twice for unlimited width.

If ps can not determine display width, as when output is redirected (piped) into a file or another command, the output width is undefined (it may be 80, unlimited, determined by the TERM variable, and so on). The COLUMNS environment variable or --cols option may be used to exactly determine the width in this case. The w or -w option may be also be used to adjust width.
matepi
2019-12-10 16:56:37 +08:00
bash 有.profile 等环境加载
然后非交互式 shell 和交互式 shell 了解一下,编程开发的非交互式不加载环境

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/627667

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX