【问题标题】:logger fails if string has hyphen如果字符串有连字符,记录器会失败
【发布时间】:2018-01-05 15:37:34
【问题描述】:

我正在尝试使用 logger 记录来自我的脚本的消息。我使用logger如下图:

logger -p auth.notice -t "TEST" "$line"

如果$line 有一些带连字符的字符串,例如:

line="-retries"

然后logger 失败并出现错误:

logger: invalid option -- r
usage: logger [-is] [-f file] [-p pri] [-t tag] [-u socket] [ message ... ]

请帮我摆脱这个错误。我也试过:

logger -p auth.notice -t "TEST" "$(echo $line)"

【问题讨论】:

  • 手动运行line="max\-retries"是否消除错误信息?
  • 具体来说,问题在于参数开头的连字符; logger 将其解释为与任何其他以连字符开头的参数一样的选项。

标签: linux string bash logging


【解决方案1】:

双连字符总是很好用:

logger -p auth.notice -t "TEST" -- "$line"
                                ^^

来自man logger

     --     结束参数列表。这允许消息以连字符 (-) 开头。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    相关资源
    最近更新 更多