292 Stimmen

Mehrere Befehle in einem Alias für bash

Ich möchte einen Alias definieren, der die folgenden zwei Befehle nacheinander ausführt.

gnome-screensaver
gnome-screensaver-command --lock

Im Moment habe ich Folgendes hinzugefügt

alias lock='gnome-screensaver-command --lock'

zu meiner .bashrc hinzufügen, aber da ich meine Workstation so oft sperre, wäre es einfacher, nur einen Befehl einzugeben.

1 Stimmen

Für den Fall, dass jemand die .bashrc Datei in W10: stackoverflow.com/a/68745805/7389293

4voto

Neenus Punkte 89

Ich füge meine 2 Cent zu der Diskussion über die 11-Jährigen hinzu und versuche dies:

alias lock="gnome-screensaver \gnome-screensaver-command --lock"

4voto

Philip Rego Punkte 484

Fügen Sie diese Funktion zu Ihrer ~/.bashrc und starten Sie Ihr Terminal neu oder führen Sie source ~/.bashrc

function lock() {
    gnome-screensaver
    gnome-screensaver-command --lock
}

Auf diese Weise werden diese beiden Befehle immer dann ausgeführt, wenn Sie Folgendes eingeben lock in Ihrem Terminal.

In Ihrem speziellen Fall ist die Erstellung einer alias kann funktionieren, aber ich empfehle es nicht. Intuitiv würde man denken, dass der Wert eines Alias genauso abläuft, wie wenn man den Wert im Terminal eingibt. Das ist jedoch nicht der Fall:

Die Regeln für die Definition und Verwendung von Aliasen sind etwas verwirrend.

y

Für fast jeden Zweck sind Shell-Funktionen den Aliasen vorzuziehen.

Verwenden Sie also nur dann einen Alias, wenn Sie es müssen. https://ss64.com/bash/alias.html

2voto

Jonathan Leffler Punkte 694013

Verwenden Sie also ein Semikolon:

alias lock='gnome-screensaver; gnome-screen-saver-command --lock'

Dies funktioniert nicht gut, wenn Sie dem ersten Befehl Argumente hinzufügen wollen. Erstellen Sie alternativ ein triviales Skript in Ihrem $HOME/bin-Verzeichnis.

1voto

Andy Punkte 13

Unter Windows, in Git\etc\bash.bashrc Ich verwende (am Ende der Datei)

a(){
    git add $1  
    git status
}

und dann in git bash einfach schreiben

$ a Config/

1voto

Bruce Smith Punkte 11
function lock() {
    gnome-screensaver
    gnome-screensaver-command --lock
}

Die oben genannten übersetzt perfekt für mich in Bash als:

bottom() {
    clear
    printf '\n%.0s' {1..100}
}
alias c="bottom"

Alles, was ich tun wollte, war, den Bildschirm zu löschen ( c alias ) und die Bash-Eingabeaufforderung am unteren Rand und nicht am oberen Rand des Terminalfensters erscheinen lassen. Ich hatte dieses Problem schon vor langer Zeit gelöst (zu lange her... habe vergessen, was ich gemacht habe), aber jetzt habe ich die Funktion in .bash_profile eingefügt und es geht los! Im Moment führe ich die Funktion auch so aus, dass, wenn ich ein neues Term-Fenster öffne, die Eingabeaufforderung, und nur die, am unteren Rand erscheint. Vielen Dank für die Anregung. Ich bin mir nicht sicher, ob ich diese Art von Dingen einfach vermisse oder ob ich es vermisse, dafür bezahlt zu werden... wahrscheinlich beides. :-)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X