首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有回波的bash垂直格式打印输出

带有回波的bash垂直格式打印输出
EN

Stack Overflow用户
提问于 2020-02-27 07:18:53
回答 3查看 782关注 0票数 2

我定义了3个变量,并使用echo显示输出。但输出以单行方式显示,期望输出是并排的。

代码语言:javascript
复制
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

预期产出

代码语言:javascript
复制
 java1 http1 php1
 java2 http2 php2 
 java3 http3 php3  
 java4 http4 php4

也使用了下面的粘贴,但这种能力也起作用。使用solaris操作系统

粘贴<(回声$a) <(回波$b) <(回波$c)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-02-27 07:45:04

在进程替换中使用paste,您可以这样做:

代码语言:javascript
复制
paste <(pgrep java) <(paste <(pgrep http) <(pgrep php))

大多数Unix风格的ps -ef提供多列输出,而不仅仅是单列输出。

使用ps -ef,您可能可以这样做:

代码语言:javascript
复制
paste <(ps -ef | grep -o java) <(paste <(ps -ef | grep -o http) <(ps -ef | grep -o php))
票数 2
EN

Stack Overflow用户

发布于 2020-02-27 07:43:24

像这样的事情可能会有所帮助

代码语言:javascript
复制
#!/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]}
}

用法

代码语言:javascript
复制
$ ./test 
java1 http1 php1
java2 http2 php2
java3 http3 php3
java4 http4 php4
票数 1
EN

Stack Overflow用户

发布于 2020-02-27 10:00:50

怎么样

代码语言:javascript
复制
for s in $a $b $c
do
    echo $s
done

如果以后不需要这些变量,我会简单地写

代码语言:javascript
复制
for w in java http php
do
    ps -ef | grep -F -- "$w"
done
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60428064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档