BASH-job的参数中的掩码括号

2020-09-04 04:30发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 在工作链中,我有一...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

在工作链中,我有一个BASH作业,其来源为" ssh $ {USERNAME} @ $ {SERVER} $ {COMMAND}",参数为USERNAME,SERVER和COMMAND。

如果我在作业链编辑器的" In Parameter Mappings"部分中将COMMAND设置为='/usr/bin/find/usr/sap/xxx/log -name'abc * .log'-type f -mtime + 30 -exec rm {} \; &'工作正常。

现在我也想删除名称为def * .log的文件,但要使用命令

='/usr/bin/find/usr/sap/xxx/log(-name'abc * .log'-o -name'def * .log')-type f -mtime +30 -exec rm { } \; &'不起作用。 错误消息"放置不正确()"。 如果我用\\遮住括号,也将不起作用。

如果用\遮住括号,则无法保存作业链。 错误消息

"无法解析脚本:第1行第xx列出现词法错误。遇到:"("(40),在" \'xxx/log \\"之后

如何在命令中使用方括号?

最好的问候
Dana

1条回答
nice_wp
2020-09-04 04:57 .采纳回答

hi Dana,

您必须至少用单反斜杠转义单引号,并且反斜杠本身也要换行:

='/usr/bin/find/usr/sap/xxx/log(-name \'abc * .log \'-o -name \'def * .log \')-type f -mtime +30 -exec rm {} \\; &'

也许您需要将命令放在双引号之间:ssh $ {USERNAME} @ $ {SERVER}" $ {COMMAND}"

考虑Gerben

一周热门 更多>