执行字符串命令 - Bash

时间:2015-03-31 03:00:42

标签: bash shell unix awk grep

我有以下命令行:

egrep '^[0-9]' /etc/hosts | grep -v 127.0.0.1 | awk 'NR==1{ips=$1} NR>1{ips=ips ", " $1} $2=="namenode"{nn=$1} END{ printf "/opt/mapr/server/configure.sh -C %s -Z %s -N mycluster --create-user -D /dev/xvdb\n", ips, nn}'

然后我会在我的厨师食谱中使用命令行来启动MapR群集:

/opt/mapr/server/configure.sh -C 10.32.237.251 -Z 10.32.237.251 -N mycluster --create-user -D /dev/xvdb

我的第一个命令只打印出该命令。如何修改该命令或添加其他任何内容,以自动执行awk生成的命令?

1 个答案:

答案 0 :(得分:2)

将它传递给shell:

egrep '^[0-9]' /etc/hosts | grep -v 127.0.0.1 \
    | awk 'NR==1{ips=$1} 
            NR>1{ips=ips ", " $1} 
            $2=="namenode"{nn=$1} 
            END{ printf "/opt/mapr/server/configure.sh -C %s -Z %s -N mycluster --create-user -D /dev/xvdb\n", ips, nn}' \
    | bash