我正在使用Ubuntu 16.04 LTS,我尝试grep某些进程的PID。以下是我在终端中所做的事情:
# ps aux | grep xorg | grep -v 'grep' | awk '{print $2}'
执行上述命令后,我得到结果:
2367
然而,我创建了一个名为t.sh的脚本,如下所示:
#!/bin/bash
a=$(ps aux | grep $1 | grep -v 'grep' | awk '{print $2}')
echo $a
我执行它:./t.sh xorg
但我得到:2367 57270 57271
我不知道这两个数字来自哪里。我只知道当我执行./t.sh xorg
并且它们相邻(n和n + 1)时,这两个数字总是会改变。
我刚发现另一件事:
如果我将xorg
修复到脚本中,而不是传递参数,那么这两个数字将会消失。
#!/bin/bash
a=$(ps aux | grep xorg | grep -v 'grep' | awk '{print $2}')
echo $a
此脚本将按预期工作。
Different results between ps aux and `ps aux` inside a script
阅读帖子后,我仍然不知道如何解决问题。