如何在bash

时间:2015-05-06 10:38:46

标签: bash shell

这是我的问题:我想输出进程名称,这是我的句子: ps -a | tr -s ' ' ' ' | cut -d' ' -f5 | sed '1d',它可以作为我的例外。 结果如下:

sh-4.3# ps -a | tr -s ' ' ' ' | cut -d' ' -f5 | sed '1d'                                        
ps                                                                                              
tr                                                                                              
cut                                                                                             
sed 

但是如果我使用“echo ps -a | tr -s ' ' ' ' | cut -d' ' -f5 | sed '1d'”,结果与使用前一句话得到的结果不一样。 结果如下:

sh-4.3# echo `ps -a | tr -s ' ' ' ' | cut -d' ' -f5 | sed '1d'`                                 
sh ps tr cut sed 

我希望通过使用 Shell脚本中的句子获得第一个结果,我该怎么办?

2 个答案:

答案 0 :(得分:1)

使用引号。

echo "$(ps -a | tr -s ' ' ' ' | cut -d' ' -f5 | sed '1d')"

答案 1 :(得分:0)

对于您的特定情况,引用将起作用:

echo "`ps -a | tr -s ' ' ' ' | cut -d' ' -f5 | sed '1d'`"

或:

echo "$(ps -a | tr -s ' ' ' ' | cut -d' ' -f5 | sed '1d')"

如果你想在任何字符串中解释\n,那么这是一个例子:

echo -e "\nString\nWith\nNewline"
#quoting is necessary

您必须使用-e选项。