我想知道为什么我在使用[]执行grep时遇到致命错误,在这里寻找逻辑。
工作:
C:\> \path\to\php.exe \path\to\your_script_name.php < example_input_content.txt
不工作:
In [37]: run("""ps aux | grep "grunt" """)
[worker2] run: ps aux | grep "grunt"
[worker2] out: root 21414 0.0 0.0 16476 5632 pts/0 Ss+ 03:10 0:00 /bin/bash -l -c ps aux | grep "grunt"
[worker2] out: root 21475 0.0 0.0 11752 884 pts/0 S+ 03:10 0:00 grep grunt
[worker2] out:
Out[37]: 'root 21414 0.0 0.0 16476 5632 pts/0 Ss+ 03:10 0:00 /bin/bash -l -c ps aux | grep "grunt" \r\nroot 21475 0.0 0.0 11752 884 pts/0 S+ 03:10 0:00 grep grunt'
知道为什么第二节不起作用?
答案 0 :(得分:1)
为了避免grep返回的退出1,请将其放置为:
grep "[g]runt" | tee
这是因为grep在使用方括号时没有找到任何字面意思(当grunt确实运行时,它应该工作,尝试它)