我定义了3个变量,并使用echo显示输出。但输出以单行方式显示,期望输出是并排的。
a=$(ps -ef | grep java)
b=$(ps -ef | grep http)
c=$(ps -ef | grep php)
echo $a $b $c产出:
java1 java2 java3 java4 http1 http2 http3 http4 php1 php2 php3 php4
预期产出
java1 http1 php1
java2 http2 php2
java3 http3 php3
java4 http4 php4也使用了下面的粘贴,但这种能力也起作用。使用solaris操作系统
粘贴<(回声$a) <(回波$b) <(回波$c)
发布于 2020-02-27 07:45:04
在进程替换中使用paste,您可以这样做:
paste <(pgrep java) <(paste <(pgrep http) <(pgrep php))大多数Unix风格的ps -ef提供多列输出,而不仅仅是单列输出。
使用ps -ef,您可能可以这样做:
paste <(ps -ef | grep -o java) <(paste <(ps -ef | grep -o http) <(ps -ef | grep -o php))发布于 2020-02-27 07:43:24
像这样的事情可能会有所帮助
#!/bin/bash
a='java1 java2 java3 java4'
b='http1 http2 http3 http4'
c='php1 php2 php3 php4'
a=($a)
b=($b)
c=($c)
for i in ${!a[@]}; {
echo ${a[$i]} ${b[$i]} ${c[$i]}
}用法
$ ./test
java1 http1 php1
java2 http2 php2
java3 http3 php3
java4 http4 php4发布于 2020-02-27 10:00:50
怎么样
for s in $a $b $c
do
echo $s
done如果以后不需要这些变量,我会简单地写
for w in java http php
do
ps -ef | grep -F -- "$w"
donehttps://stackoverflow.com/questions/60428064
复制相似问题