从 cli 或 Nautilus 运行脚本的行为有何不同?

从 cli 或 Nautilus 运行脚本的行为有何不同?

我在 ~/bin 中创建了两个脚本,test.sh

#!/bin/bash
/home/<username>/bin/test2.sh & disown

和 test2.sh

#!/bin/bash
/usr/bin/notify-send "test!"

当我./test.sh启动它时,它按预期工作,但当我从 Nautilus 启动它时,没有通知,我看到终端窗口闪烁,然后消失,什么都没有。我尝试将read line和添加$shell到 test2.sh,但没有效果。

造成这种差异的原因是什么?如何让它在 nautilus 中像在命令行中一样工作?

更新:如果& disown从第一个脚本中省略,则第二个脚本将按预期运行。

相关内容