Wie hängt man einen String an eine Bash-Kommandozeile an?

411
Nerdy Cat

Ich bin sicher, dass dies eine wiederkehrende Frage ist, aber ich habe keine gefunden, die eine Antwort hatte, die zu meinem Problem passt.

Was ich tun möchte, ist so etwas:

alias disexit = " & disown & exit" gnome-calculator disexit 

Es würde also die Befehlszeile ausführen

gnome-calculator & disown & exit 

Als Folge davon würde der Rechner laufen und kein Terminal dahinter gleiten, ohne das Ganze manuell schreiben zu müssen.

Wenn möglich, möchte ich, dass dieser Alias ​​dauerhaft ist.

2
Als Referenz für Anfänger usw. sollten Sie erklären, warum Ihr Alias ​​nicht funktioniert. Der Aliasname muss das erste Wort eines einfachen Befehls sein. Kamil Maciorowski vor 6 Jahren 0

3 Antworten auf die Frage

3
Zombie Feynman

So aliasfunktioniert das nicht (und AFAIK kann nicht ohne Änderung bashselbst durchgeführt werden), aber wenn Sie sich nicht für eine etwas andere Syntax interessieren, können Sie etwas hinzufügen

disexit(){ "$@" & disown & exit } 

zu Ihrem .bashrc(um diese Funktion dauerhaft zu machen), und rufen Sie es als auf

disexit gnome-calculator 
Entschuldigung, ich habe Ihre Antwort nicht bemerkt, als ich meine eingegeben hatte. AFH vor 6 Jahren 0
0
AFH

Sie können dies nicht mit einem Alias ​​tun. Sie können jedoch eine Funktion codieren:

disexit() { "$1" & disown & exit; } 

Aber Sie müssen das andersherum nennen:

disexit gnome-calculator 

Dies ist das Beste, was Sie mit der bashSyntax Ihren Anforderungen am nächsten kommen .

Um es dauerhaft verfügbar zu machen, fügen Sie einfach die Funktionsdefinition zu hinzu ~/.bashrc.

0
Xen2050

Kannst du nicht einfach nohupvor dem gewünschten Befehl laufen ? Wie in

nohup gnome-calculator &