gpt4 book ai didi

python - pexpect 和 shell 元字符(>、| 或 *)

转载 作者:太空宇宙 更新时间:2023-11-04 01:31:21 29 4
gpt4 key购买 nike

我现在很困惑。

期待 documentation陈述如下:

Remember that Pexpect does NOT interpret shell meta characters such as
redirect, pipe, or wild cards (>, |, or *). This is a common mistake.
If you want to run a command and pipe it through another command then
you must also start a shell. For example::

child = pexpect.spawn('/bin/bash -c "ls -l | grep LOG > log_list.txt"')
child.expect(pexpect.EOF)

但是我正在查看一些在 pexpect.sendline(some command | grep 'something') 中使用 |* 的旧代码.所以我开始测试这些命令,它们似乎都有效。还值得一提的是,我没有使用修改过的 pexpect 模块,它是 python 的普通旧 pexpect。

怎么会?为什么期望提到元字符不起作用,而它显然是这样的?

最佳答案

pexpect.spawn 不解释 shell 元字符,但在 pexpect(大概是 shell)中运行的任何东西显然都可以:

child = pexpect.spawn('/bin/bash')
child.sendline('echo hello | cat')

pexpect 只是将字符串传递给子进程;它不是在解释它。

关于python - pexpect 和 shell 元字符(>、| 或 *),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13701797/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com