执行管道命令并在结果上循环的ksh脚本
我需要像这样在ksh中运行一个长管道命令执行管道命令并在结果上循环的ksh脚本,ksh,Ksh,我需要像这样在ksh中运行一个长管道命令 cmd='ps -e -o args | /usr/bin/grep abcde | /usr/bin/grep -v grep' 然后执行这个命令。 然后循环计算结果。 所以我试着用上面这句话然后 $cmd | while read $arg1 $arg2 ; do echo $arg1 $arg2 blah $arg1 $arg2 done 结果中也可以有两个以上的参数。 我无法执行此操作并得到我想要的结果。 有人能告诉我这有什
cmd='ps -e -o args | /usr/bin/grep abcde | /usr/bin/grep -v grep'
然后执行这个命令。
然后循环计算结果。
所以我试着用上面这句话然后
$cmd | while read $arg1 $arg2 ; do
echo $arg1 $arg2
blah $arg1 $arg2
done
结果中也可以有两个以上的参数。
我无法执行此操作并得到我想要的结果。
有人能告诉我这有什么问题,我需要如何纠正它吗 为什么需要将pipline存储在变量中
您可以改为使用函数:
find_process() {
typeset search_pattern=$(sed 's/^./[&]/' <<<"$1")
ps -e -o args | grep "$search_pattern"
}
find_process abcde
... | while read -rA words; do
: do something with the array "${words[@]}"
done