ubuntuusers.de

Script im Terminal

Status: Gelöst | Ubuntu-Version: Ubuntu 11.10 (Oneiric Ocelot)
Antworten |

FoCMB

Anmeldungsdatum:
2. April 2008

Beiträge: 310

Hi,

ich habe mir ein kleines Script gebastelt, um ein Android Smartphone per ADB zu debuggen. Bei einem Doppelklick auf das Script kommt die bekannte Abfrage, ob im Terminal ausführen, nur ausführen usw. Ich möchte das Script im Terminal ausführen. Leider geht das Terminal nicht auf. Oder es Geht auf und gleich wieder zu. Wenn ich das Script direct im Terminal über sh script.sh ausführe, dann funktioniert alles. Vielleicht kann mir jemand sagen, wie ich das Terminal offen lasse, wenn ich mit der Maus doppelt auf das Script klicke und auswähle: im Terminal ausführen. Das Script sieht wie folgt aus:

1
2
3
4
5
6
7
8
#!/bin/bash
echo "Filter eingeben oder leer lassen für keinen Filter"
read filter

if [ $filter != "" ]
	then adb logcat -s $filter:* | ./coloredlogcat.py
	else adb logcat | ./coloredlogcat.py
fi	

Edit: Die Abfrage nach dem Filter kommt noch im Terminal. Sobald ich aber den Filter eingebe und ENTER drücke, schliesst das Terminal.

Edit 2: Konnte das Problem einkreisen, aber nicht lösen. Wenn ich das Script über das Terminal starte (sh script.sh), dann läufts. Wenn ich das Script per Mausklick starten will, kommt die Meldung: Kommando adb nicht gefunden. Irgendwie irritiert mich das.

sdx23

Anmeldungsdatum:
19. August 2008

Beiträge: 154

Wenn sich das Terminal schließt, dann nur, weil das Skript darin fertig war. Du kannst ein sleep 5 oder ein read ans Ende packen.

Um es direkt auszuführen, muss es ausführbar sein. Lies die Wiki-Artikel zu "Rechte" und sieh nach, was ein Shebang ist und warum man ihn braucht.

-sdx23

FoCMB

(Themenstarter)

Anmeldungsdatum:
2. April 2008

Beiträge: 310

Nachtrag:

ich habe mir mal echo $PATH ausgeben lassen. Direkt im Terminal eingegegeben erhalte ich:

/home/focmb/Programme/android-sdk-linux/platform-tools/:/home/focmb/Programme/android-sdk-linux/tools/:/home/focmb/Programme/android-sdk-linux/:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Schreibe ich echo $path in ein Script, lege dieses in meinen Homeordner und führe es per Mausklick aus, erhalte ich:

/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Es fehlt also der ganze android-sdk Teil. In meiner .bashrc (in meinem Homeverzeichnis) steht:

export PATH=/home/focmb/Programme/android-sdk-linux/:$PATH
export PATH=/home/focmb/Programme/android-sdk-linux/tools/:$PATH
export PATH=/home/focmb/Programme/android-sdk-linux/platform-tools/:$PATH

Also irgendwie scheint das mit den Umgebungsvariablen nicht hinzuhauen.

Bearbeitet von tomtomtom:

Wie du siehst, geht das auch lesbar. Bitte nutze für CODE Codeblöcke.

dAnjou

Avatar von dAnjou

Anmeldungsdatum:
8. Oktober 2007

Beiträge: 872

Wohnort: Berlin

Die .bashrc ist nicht immer der richtige Ort für Umgebungsvariablen. Lies dir mal die Dateien .profile und/oder .bash_profile (jeweils, sofern vorhanden) durch.

FoCMB

(Themenstarter)

Anmeldungsdatum:
2. April 2008

Beiträge: 310

ooh danke. Hat geholfen. Habe die $PATH-Variablen in die .profile geschrieben und jetzt klappt alles. Danke nochmal.

Antworten |