Shell Scripting传递命令并显示其输出

时间:2017-11-01 12:40:29

标签: shell

我想传递一个命令并打印出答案。 我试过这个

#!/bin/sh
cmd = `ps -ef|grep processname`
echo "$cmd"

但我收到的错误是

: command not found 4: cmd

此命令的输出可能是5行或6行。 我只想查看它们。

2 个答案:

答案 0 :(得分:0)

删除等号符号两侧的额外空格。

cmd=`ps -ef|grep processname`

答案 1 :(得分:0)

尝试切换到bash,而不是sh

cmd="$(ps -ef|grep apache)"
echo "$cmd"

产量

bob@cindy:~$ echo "$cmd"
root      1914     1  0 Sep08 ?        00:01:37 /usr/sbin/apache2 -k start
www-data  1990     1  0 Sep08 ?        00:01:09 /usr/bin/htcacheclean -d 120 -p /var/cache/apache2/mod_cache_disk -l 300M -n
bob 13511 13509  0 08:18 pts/0    00:00:00 grep apache
www-data 29841  1914  0 00:08 ?        00:00:00 /usr/sbin/apache2 -k start
www-data 29842  1914  0 00:08 ?        00:00:00 /usr/sbin/apache2 -k start
www-data 29843  1914  0 00:08 ?        00:00:00 /usr/sbin/apache2 -k start
www-data 29844  1914  0 00:08 ?        00:00:00 /usr/sbin/apache2 -k start
www-data 29845  1914  0 00:08 ?        00:00:00 /usr/sbin/apache2 -k start