0

我正在使用centOS 7,我正在尝试通过bash脚本检查使用端口X/tcp和“fuser”命令的进程的pid,如下所示:

  some_pid=$(fuser X/tcp) > /dev/null
  another_pid=$(fuser Y/tcp) > /dev/null
  ...
  if [[ -z "$some_pid" ]]; then ...

虽然我不希望将任何内容打印到控制台,但结果是:

X/tcp:
Y/tcp:
...

当我尝试使用 -s 运行 fuser 时,if 语句返回 false,因为由于某种原因,fuser 的结果为空。

如何避免不需要的打印?为什么当我在静音模式下运行 fuser 时它返回空?

4

1 回答 1

1

fuser手册页中,您可以看到

fuser 仅将 PID 输出到 stdout,其他所有内容都发送到 stderr。

那就是你需要摆脱stderr输出。

some_pid=$( fuser X/tcp 2> /dev/null )
于 2018-05-09T11:36:24.267 回答