2012-04-06 8 views
1

Ich habe ein einfaches Bash-Skript geschrieben, das für eine Datei oder einen Verzeichnispfad auffordert und öffnet es mit Exo-Open, ich habe dann das Skript auf einer Tastatur zugewiesen Abkürzung so dass ich CTRL +SHIFT + ALT + O über eine Terminal-Eingabeaufforderung jederzeit etwas zu öffnen:Exo-Open in einem Terminal-Skript - Programm schließt mit dem Terminal

The keyboard binding

Und das Skript:

#!/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 

Mein Problem ist, dass der erzeugte Programm mit dem Terminal verbunden ist, wenn das Terminal schließt es das Programm mit dauert es - als eine einfache Abhilfe, die ich am Ende eines anderen Benutzer Aufforderung muß Stoppen Sie das Schließen des Terminals; Weiß jemand, wie ich dem Terminal erlauben könnte, zu schließen, aber das resultierende Programm offen zu halten?

einige Ideen, die ich je hatte/versucht:

  • Lauf disown $! nach Exo-open (nicht funktioniert)
  • Verwendung nohup (funktionierte nicht)
  • Run Exo-geöffnet von die PPID (keine Ahnung, wie dies zu tun)

mit meinem Latein am Ende :-(

+0

disown nimmt einen Job-ID, also verwenden '% 1 'statt' $! ' –

+0

Interessant, das gab mir eine" Fehler beim Ausführen der Standard-Terminal-Emulator. Input/Output error. "Warning. Ich habe es gerade mit' setsid exo-open "$ filename" 'gelöst – oodavid

Antwort

1

ich diesen answ hatte Ered von Xfce Forum Mitglied ToC

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

stellte sich heraus, Sie setsid wie so verwenden können:

#!/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" 
Verwandte Themen