gpt4 book ai didi

linux - 如何阻止 zsh 脚本被挂起(tty 输出)

转载 作者:IT王子 更新时间:2023-10-29 01:20:10 24 4
gpt4 key购买 nike

我有一个我想要运行的 zsh 脚本,这样它也可以加载我的 .zshrc 文件。我认为我必须以交互模式运行我的脚本?

因此,我的脚本开始如下:

#!/bin/zsh -i

if [ $# = 0 ]
then
echo "need command line paramter..."
exit
fi

但是,当我尝试在后台运行此脚本时,我的脚本被挂起(即使我传入了正确数量的参数):

[1]  + suspended (tty output) 

我的问题是:我怎样才能制作一个可以在后台运行并同时加载我的启动 .zshrc 文件的脚本?如果我必须将其设置为交互模式,我该如何避免 suspended on tty 输出问题?

谢谢

最佳答案

不要将交互模式用作 hash-bang!

相反,如果需要,可以在脚本中获取 zshrc 文件:

#!/bin/zsh
source ~/.zshrc
...

为了将来引用,您可以使用 disown 插件从 shell 中分离以前的后台作业,这样它就不能被挂起或做任何其他事情。然后可以在不影响进程的情况下关闭父 shell:

$ disown %1

您可以在启动程序时直接从命令行执行此操作,方法是使用 &! 运算符而不仅仅是 &:

$ ./my_command &!

关于linux - 如何阻止 zsh 脚本被挂起(tty 输出),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6431741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com