use*_*344 2 linux shell bash logging
如何在 shell 脚本中使用记录器?
如果我跑
ntpd -qnp pool.ntp.org 2> >(logger)
Run Code Online (Sandbox Code Playgroud)
在控制台中,它按预期工作。
如果我把它放到一个shell脚本中
#!/bin/sh
ntpd -qnp pool.ntp.org 2> >(logger)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
line 2: syntax error: unexpected redirection
exited with code 2
Run Code Online (Sandbox Code Playgroud)
shell 脚本有什么问题?
小智 6
shebang 是正确的,因为 #!/bin/sh 和 #!/bin/bash 都可以使用*,但是,IIRC,您应该使用管道而不是重定向记录器,因为它是程序而不是文件。
试试这个脚本:
#!/bin/sh
ntpd -qnp pool.ntp.org 2>&1 |logger
Run Code Online (Sandbox Code Playgroud)
*如果您使用#!/bin/sh 作为您的脚本,它们应该是posix 兼容的,即在solaris 和AIX 上运行良好。如果您使用过某些 bash 特定功能,则必须使用 #!/bin/bash,因为没有更多的可移植性。
| 归档时间: |
|
| 查看次数: |
3513 次 |
| 最近记录: |