我需要编写一个bash脚本,第一个工作是从arcsight ESM导出包。之后,它需要将导出的档案移动到连接器服务器,但我还没有到达那个部分。我的问题是:根据arcsight ESM手册,导出包的命令如下:
arcsight package –action export –package “/All Packages/Personal/Mypackage” –f packagebundle.arb –u username –p password –m managername
该命令只需要从ESM服务器上的arcsight
主目录运行,否则bash不会将arcsight
识别为命令。我这样做了,该命令似乎运行良好,因为它设法登录到ESM,返回说它正在导出包,但后来我得到了
标记''无法识别
然后停止。它没有完成导出包,因为在运行命令后目标文件夹中没有“packagebundle.arb”文件。所以我想问一下是否有人知道这个错误是什么以及如何解决它。直到现在才发现它。 ArcSight版本为6.9,Linux版本为RHEL 5.5。
答案 0 :(得分:0)
我认为问题在于你引用了一个卷曲的引用,如下所示:“,而不是直引用,如下所示:"。
一些文本编辑器将直接引号更改为卷曲,因为它们看起来更好。但这会破坏shell可执行文件,因为它无法识别卷曲引号。
使用直引号arcsight package –action export –package "/All Packages/Personal/Mypackage" –f packagebundle.arb –u username –p password –m managername
示例:使用直引号和卷曲引号进行回显
直引号:
echo "test"
> test
Qurly引用:
echo “test“
> “test“
正如你所看到的,bash没有将“解释为”。