linux bash多行取值

#! /bin/bash
# process-monitor.sh

process=$1
pid=$(ps x | grep "hadoop" | grep '/bin/java' | grep -v grep | awk '{print $1}')
echo $pid`

上面是脚本,执行后返回值有多个pid:

10725 10855 11034 11289 11425

比如我想取第一个10725,该怎么写,感谢🙏。

阅读 2k
2 个回答
pid=$(ps x | grep "hadoop" | grep '/bin/java' | grep -m1 -v grep | awk '{print $1}')

还有一种更优雅的解决方案可以避免grep -v grep这种方式:

pid=$(ps x | grep '[h]adoop' | grep -m1 '/bin/java' | awk '{print $1}')

See: https://unix.stackexchange.co...

cut -d ' ' -f 1
解释:以空格为分隔符,取第一列

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题