2011-06-22 58 views
2

我正在使用Solaris并处理打开任何禁用服务的脚本。 这里是输出文件:关于nawk和系统命令

disabled  7:22:05 svc:/network/bla-bla:default 
online   Jun_14 svc:/network/blu-blu:default 

我想我的代码来解析这一点,并打开使用NAWK本身残疾人一个

下面是我通过它试图出于某种原因不能正常工作:

cat output | nawk '/disabled/ {system(svcadm enable $3)}' 

这里是输出它给:

**sh: line 1: svc:/network/bla-bla:default: not found** 

我需要cat output |grep bl*输出是:

online  7:22:05 svc:/network/bla-bla:default 
online   Jun_14 svc:/network/blu-blu:default 

任何人都可以向我解释,为什么出现这种情况,如何使这个NAWK工作。我要的全部是

svcadm enable svc:/network/bla-bla:default 

要执行。

回答

1

因为它将svcadm作为一个变量名,它没有任何价值。尝试

nawk '{system("svcadm enable " $3)}' 

(对不起,我的意思是,作为NAWK程序 - 现予以更正。)

+0

它不工作,但..它现在抛出错误“SH:线路1:0:未找到“ – tomkaith13

+0

我明白了!加号是问题,因为它不是shell脚本中的字符串连接器....谢谢你。如果你能纠正答案,我会继续前进n标记正确 – tomkaith13

+1

为你更正 –