Pet*_*991 5 linux scripting background zsh
我有一个zsh脚本,我想运行它,它也加载我的.zshrc文件.我相信我必须以交互模式运行我的脚本?
因此,我的脚本开始如下:
#!/bin/zsh -i
if [ $# = 0 ]
then
echo "need command line paramter..."
exit
fi
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在后台运行此脚本时,我的脚本将被暂停(即使我传入了正确数量的参数):
[1] + suspended (tty output)
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何制作一个可以在后台运行的脚本,它还会加载我的启动.zshrc文件?如果我必须将其置于交互模式,我怎样才能避免暂停tty输出问题?
谢谢
不要使用交互模式作为哈希爆炸!
相反,如果需要,请在脚本中获取zshrc文件:
#!/bin/zsh
source ~/.zshrc
...
Run Code Online (Sandbox Code Playgroud)
为了将来参考,您可以使用disown
bultin从shell中分离以前的后台作业,以便它不会被挂起或其他任何东西.然后可以关闭父shell而不影响该进程:
$ disown %1
Run Code Online (Sandbox Code Playgroud)
当您使用&!
运算符而不是仅启动程序时,可以直接从命令行执行此操作&
:
$ ./my_command &!
Run Code Online (Sandbox Code Playgroud)