1

ファイルまたはディレクトリのパスを要求し、exo-openで開く簡単なbashスクリプトを作成しました。次に、スクリプトをキーボードショートカットに割り当てて、ターミナルからいつでも何でも開くことができるように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 に答える