我正在尝试启动一个终端以交互方式请求文件,并使用 GUI 程序打开它:
foot /bin/sh -c 'file=`fzf`;(setsid xdg-open "$file" &)'
我正在使用setsid
,因为否则终端在xdg-open
退出时会删除它。但是,上面的命令不起作用:它仍然退出,屏幕上没有显示任何内容。但是,当我sleep
在最后添加 a 时,它确实有效:
foot /bin/sh -c 'file=`fzf`;(setsid xdg-open "$file" &); sleep 0.0000000001'
终端退出,但由 启动的进程xdg-open
仍在运行。
这里发生了什么?有没有更清洁的方法可以避免睡眠(因为我假设睡眠的确切时间取决于系统)。
我尝试使用disown
,但这根本不起作用(即使使用sleep
)。