1

我编写了一个简单的 bash 脚本,提示输入文件或目录路径并使用 exo-open 打开它,然后我将脚本分配给键盘快捷键,以便我可以随时CTRL通过SHIFTALTO终端打开任何内容迅速的:

键盘绑定

和脚本:

#!/bin/bash

# CD to the home folder (not sure if this is needed, no harm either way)
cd ~/

# Request the filepath
echo -e "\e[1;31mEnter a file or directory:\e[00m"
read -e -i "~/" filename

# Convert ~/ to /home/username/
filename=`eval "echo $filename"`
echo -e "opening\e[1;32m" $filename "\e[00m"

# Open the file
exo-open "$filename"

echo "press enter to exit"
read enter

我的问题是生成的程序链接到终端,当终端关闭时,它会带上程序 - 作为一个简单的解决方法,我最后有另一个用户提示来阻止终端关闭;有谁知道我如何允许终端关闭但保持结果程序打开?

我曾经/尝试过的一些想法:

  • 在 exo-open 之后运行disown $!(没用)
  • 使用nohup(没用)
  • 从 PPID 运行 exo-open(不知道怎么做)

在我的智慧结束:-(

4

1 回答 1

1

我得到了 Xfce 论坛成员ToC的回答

http://forum.xfce.org/viewtopic.php?pid=25670

原来你可以像这样使用setsid:

#!/bin/bash

# CD to the home folder (not sure if this is needed, no harm either way)
cd ~/

# Request the filepath
echo -e "\e[1;31mEnter a file or directory:\e[00m"
read -e -i "~/" filename

# Convert ~/ to /home/username/
filename=`eval "echo $filename"`
echo -e "opening\e[1;32m" $filename "\e[00m"

# Open the file
setsid exo-open "$filename"
于 2012-04-06T13:57:44.267 回答