New*_*bie 10 command-line pipe execute-command
在我的互联网研究中,我发现以下命令作为查找窗口进程名称的解决方案:
xprop _NET_WM_PID | sed 's/_NET_WM_PID(CARDINAL) = //' | ps `cat`
Run Code Online (Sandbox Code Playgroud)
我只是不明白第一次之后会发生什么|。
让我们假设xprop _NET_WM_PID输出1000为进程 ID。接下来发生什么?为什么我们有一个catafter ps?我有点困惑。
Lek*_*eyn 15
xprop ... | sed ...首先执行,然后cat读取其输出。由于使用了反引号, cat 的输出被替换ps `cat`为命令变为ps 1000。
导致相同结果的替代命令是:
ps $(xprop _NET_WM_PID | cut -d= -f2)
Run Code Online (Sandbox Code Playgroud)
其工作原理如下:
执行xprop _NET_WM_PID以检索窗口的进程 ID。单击一个窗口后,它输出如下内容:
_NET_WM_PID(CARDINAL) = 12345
Run Code Online (Sandbox Code Playgroud)=并采取第二个领域。从标准输入cut -d= -f2获取_NET_WM_PID(CARDINAL) = 12345字符串并写入12345标准输出。ps用$(...)代替 的输出运行...命令,执行的命令是ps 12345。(旁注:`...`也可以用来代替$(...),尽管有一些区别)| 归档时间: |
|
| 查看次数: |
1594 次 |
| 最近记录: |