分页: 1 / 1
问一个 bash 命令的意思
发表于 : 2008-06-22 18:17
由 cheneymx
! ps aux | grep -q fetchmail && fetchmail &
这个代码的意思是什么? 是不是说 如果系统里面没有 fetchmail 的进程, 那么运行 fetchmail , 如果已经存在, 则忽略后面的 fetchmail & ??
我不明白最前面的 ! 是什么意思
发表于 : 2008-06-22 18:44
由 xiooli
把&&前面的看成一体,!当然就是取反咯。
其实应该可以去掉前面的!把&&换成||
发表于 : 2008-06-22 19:25
由 cheneymx
我觉得这个代码有个问题, 因为执行 grep 命令的时候, 这个grep命令也会产生一个进程, 这个进程也带有关键字 fetchmail, 所以我觉得
! ps aux | grep -q fetchmail
执行的结果永远是 false.
所以我觉得这个代码应该是:
! ps aux | grep -q fetchmail | grep -v grep && fetchmail &
哪位学过 bash 的 看是不是这样?
发表于 : 2008-06-22 19:27
由 BigSnake.NET
用这个 ps -e
发表于 : 2008-06-22 19:31
由 cheneymx
BigSnake.NET 写了:用这个 ps -e
收到! 这个解决办法简洁,有效.
发表于 : 2008-06-22 19:33
由 BigSnake.NET
cheneymx 写了:BigSnake.NET 写了:用这个 ps -e
收到! 这个解决办法简洁,有效.
其实最好用 pgrep