TMPFILE=/tmp/jboss_ps.$$
${PS} ${PS_OPTS} | \
grep ${JBOSS_HOME}/java | \
egrep -v " grep | \
tee | $0 " | ${AWK} '{print $NF " "}' | \
sort -u > ${TMPFILE} 2>/dev/null
我想通过上面的代码知道这条精确的线路是做什么的
egrep -v " grep | \
tee | $0 "
起初我认为那条线正在搜索不包含这个确切字符串“grep | \ tee | $ 0”的所有内容,但看起来egrep正在处理管道,所以这里管道的意义是什么,是不是是OR还是?从我的测试看来它不是,但如果它意味着输出重定向那么内部grep会得到什么?为什么还有一个人呢?
答案 0 :(得分:0)
AFAIK
egrep -v " grep | \
tee | $0 "
只是
egrep -v " grep | tee | $0 "
其中\
是bash中的延续字符。
egrep
与grep -E
-v用于反向选择
tee
只是另一个字符串
所以egrep -v " grep | tee | $0 "
确实找到了具有字符串{java path}的行并且在此结果中,所有行都与条件{grep OR tee OR $ 0}不匹配
$0 is the filename not a '$0'
因为它使用DOUBLE QUOTES而不是单引号:)
" commands | $variables "
倾向于扩展变量并使用该实用程序。
答案 1 :(得分:0)
egrep命令之前的管道中的命令可能类似于 ps -ef | grep ....你问的egrep -v(Option)行只是省略了你的行 不希望在结果中,在这种情况下发出的初始grep命令 脚本,任何tee命令,最后$ 0,这是该脚本的名称 被执行。 egrep允许输入用双引号括起来的多个模式 用管道符号分隔。语法egrep - [选项与否]“patern1 | patern2 | patern ...”