bash 中的
2024-05-11


在 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(使用前将#替换为@)

bash 中的

随机推荐