Ich habe kürzlich diese Frage zum Hinzufügen eines Shell-Skripts zu Dash gestellt:
Wie führe ich in 14.04 ein Bash-Skript aus, das ich geschrieben habe, ohne ein Terminal zu öffnen?
Es hat perfekt funktioniert.
Folgefrage: Wie kann ich Befehlszeilenargumente über Dash übergeben? Beispiel: In diesem Fall heißt mein Dash-Befehl "Panel". Das Skript zeigt 8 Bildschirme auf meinem Bildschirm an. Hier ist ein Beispiel für die Verwendung:
panel # Tile the screen with 8 terminal windows.
panel --left # Tile the left side with 4 terminals
panel --right # Tile the right side with 4 terminals
Und so weiter. Wie kann ich Argumente wie --left
oder --right
über Dash weitergeben? Idealerweise möchte ich diesen Workflow haben:
- Drücken Sie die SUPER-Taste
- Typ
panel --left
(zum Beispiel) - Das Armaturenbrett verschwindet und die linke Seite ist getäfelt.
Im Moment läuft das richtige Skript, ignoriert es aber --left
.
Tipps?
scripts
unity-dash
Sir Robert
quelle
quelle
Antworten:
Das Problem ist, dass Sie eine
.desktop
Datei nicht mit Argumenten aus Dash "ausführen" können , so dass das Setup genau so ist, wie Sie es sich vorgestellt haben, fürchte ich. Jedoch Ihr Skript unter der Annahme , tut nehmen Argumente, gibt es ein paar elegante Alternative Möglichkeiten sind, vielleicht noch besser:Speichern Sie Ihr Skript in
~/bin
Führen Sie es durch Drücken von aus AltF2und geben Sie den Befehl ein
Erstellen Sie im Unity Launcher eine Quicklist:
(Angenommen, Sie haben das Skript in gespeichert
~/bin
, es ausführbar gemacht und die Erweiterung wie in 1 entfernt.)Speichern Sie es als
panel.desktop
in~/.local/share/applications
und ziehen Sie es auf den Launcher.Erstellen Sie drei verschiedene Tastaturkürzel, z. B. Alt+ <, Alt+ ^, Alt+ >, um Ihre Skriptargumente auszuführen:
"Systemeinstellungen"> "Tastatur"> "Verknüpfungen"> "Benutzerdefinierte Verknüpfungen"
Klicken Sie auf "+", um Ihre Befehle hinzuzufügen:
<scriptname> <argument>
Nicht die offensichtlichste, aber das Erkunden der Optionen sollte erwähnt werden: Sie können eine (Zenity-) Optionsliste von Dash aus aufrufen:
Geben Sie das erste Zeichen Ihrer Option ein, drücken Sie die Eingabetaste, und Ihr Skript wird mit dem ausgewählten Argument ausgeführt.
Wieder unter der Annahme, dass Sie das Skript in ~ / bin gespeichert, ausführbar gemacht und die Spracherweiterung wie in 1 entfernt haben:
Kopieren Sie das folgende Skript in eine leere Datei, speichern Sie es unter
panel_options.sh
und machen Sie es ausführbar.Erstellen Sie die .desktop-Datei aus dem folgenden Code. In der
Icon=
Linie, stellen Sie den Pfad zu Ihrem Symbol, in derExec=
Linie der Wegpane_options.sh
, speichern Sie es alspanel.desktop
in~/.local/share/applicatios
quelle
Aus Ihrer ursprünglichen Frage geht hervor, dass es das Richtige ist, das Skript zu verschieben
~/bin/
, das$PATH
standardmäßig in Ihrem Skript enthalten sein sollte .In diesem Fall können Sie Ihr Skript AltF2erneut ausführen . Sie können ihm auch Argumente übergeben, wie Sie es in einer Shell tun.
Sie können auch einen anderen Ordner hinzufügen, in dem Sie Ihre Skripte aufbewahren
$PATH
. Öffnen Sie dazu~/.profile
den Texteditor Ihrer Wahl:Fügen Sie am Ende eine Zeile hinzu (ersetzen Sie sie
<folder>
durch Ihren Ordner) und speichern Sie die Datei:Zum Beispiel füge
$HOME/.bin
ich$PATH
meinem hinzu , damit meine Binärdateien meinen Home-Ordner nicht überladen, aber Sie können Ihrem Pfad ein beliebiges Verzeichnis hinzufügen. Achten Sie jedoch darauf, dass Sie nichts Gefährliches hinzufügen (z. B. weltbeschreibbar).Die Änderungen werden beim nächsten Login wirksam.
quelle