需要帮助捕获命令的输出,该命令本身是linux bash中的一个变量

时间:2018-06-18 17:19:23

标签: bash

所以,我有这个命令我要执行然后捕获输出:

cat /etc/sysconfig/network-scripts/ifcfgxxx | grep IPADDR | sed -E -e 's/[[:blank:]]+/\n/g'"

但是,在我的脚本中,路径是一个变量:

mypath="/etc/sysconfig/network-scripts/ifcfgxxx"

所以我的命令看起来像这样:

cat ${mypath} | grep IPADDR | sed -E -e 's/[[:blank:]]+/\n/g'"

当我把这个放入我的脚本时,它可以工作:

mypath="/etc/sysconfig/network-scripts/ifcfgxxx"
output="$(cat ${mypath} | grep IPADDR | sed -E -e 's/[[:blank:]]+/\n/g')"
echo ${output}

这就是我得到的:

IPADDR=192.168.1.3
IPADDR1=192.168.1.4
IPADDR2=192.168.1.5
IPADDR3=192.168.1.6

但是,当我把它放入我的脚本时,它不起作用:

mypath="/etc/sysconfig/network-scripts/ifcfgxxx"
mycommand="cat ${mypath} | grep IPADDR | sed -E -e 's/[[:blank:]]+/\n/g'"
output="$(${mycommand})"
echo ${output}

我收到了一堆错误:

cat: |: No such file or directory
cat: grep: No such file or directory
cat: IPADDR: No such file or directory
cat: |: No such file or directory
cat: sed: No such file or directory
cat: 's/[[:blank:]]+/\n/g': No such file or directory

我知道如何以命令为变量来实现这一目标吗?

由于

0 个答案:

没有答案