所以,我有这个命令我要执行然后捕获输出:
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
我知道如何以命令为变量来实现这一目标吗?
由于