在 bash 中,标准 (1) 和错误 (2) 输出可以通过以下方式重新路由和丢弃:
>/dev/null 2>&1
但下面的例子做了不同的事情:
nohup myscript.sh >myscript.log 2>&1 </dev/null &
的含义/功能是什么</dev/null
在上面的例子中?它在什么样的脚本场景中有用?
(示例来源) https://stackoverflow.com/questions/8122780/exiting-shell-script-with-background-processes
</dev/null
用于避免脚本等待输入。
引用自: https://unix.stackexchange.com/a/27958/40596
< /dev/null
用于立即向程序发送EOF,以便
不等待输入(/dev/null
,空设备,是一个特殊的
文件丢弃所有写入其中的数据,但报告写入
操作成功,并且不向任何读取的进程提供任何数据
从它,立即产生 EOF)。&
是一种特殊类型的命令
分隔符用于为前面的进程提供背景。
所以命令:
nohup myscript.sh >myscript.log 2>&1 </dev/null &
#\__/ \___________/ \__/ \________/ ^
# | | | | |
# | | | | run in background
# | | | |
# | | | don't expect input
# | | |
# | | redirect stderr to stdout
# | |
# | redirect stdout to myscript.log
# |
# keep the command running
# no matter whether the connection is lost or you logout
将移动到后台命令,将 stdout 和 stderr 输出到myscript.log
无需等待任何输入。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)