如果字符串有连字符,记录器将失败

Faz*_*lin 1 linux string bash logging

我试图用来logger记录我的脚本中的消息.我使用logger如下所示:

logger -p auth.notice -t "TEST" "$line"
Run Code Online (Sandbox Code Playgroud)

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

line="-retries"
Run Code Online (Sandbox Code Playgroud)

然后logger失败并出现错误:

logger: invalid option -- r
usage: logger [-is] [-f file] [-p pri] [-t tag] [-u socket] [ message ... ]
Run Code Online (Sandbox Code Playgroud)

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

logger -p auth.notice -t "TEST" "$(echo $line)"
Run Code Online (Sandbox Code Playgroud)

iBu*_*Bug 6

双连字符总是很好用:

logger -p auth.notice -t "TEST" -- "$line"
                                ^^
Run Code Online (Sandbox Code Playgroud)

来自man logger:

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