GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie man den Alias-Befehl in einem Bash-Skript oder einer Bashrc-Datei zum Laufen bringt

Alias ​​festlegen ‘ für jeden Befehl und der Alias-Befehl funktioniert gut auf der interaktiven Shell, während Aliasing innerhalb des Skripts nicht funktioniert.

1. Interaktive Shell

# alias ls1='ls -lrt'
# ls1
total 0
-rw-r--r-- 1 root root 0 Oct 12 12:14 file1
-rw-r--r-- 1 root root 0 Oct 12 12:14 file2

2. Innerhalb des Skripts

# cat script.sh
#!/bin/bash
# Script to check the alias output
alias ls1='ls -lrt'
ls1
# chmod +x script.sh
# ./script.sh 
./script.sh: line 3: ls1: command not found

Aliase werden nicht erweitert, wenn die Shell nicht interaktiv ist, außer expand_aliases Die Shell-Option wird mit shopt gesetzt . Es kann getestet werden, indem der Befehl „Alias“ zu einem einfachen Bash-Skript hinzugefügt wird, und die Skriptausführung gibt den Alias-Befehl nicht aus, während es auf der interaktiven Shell die verfügbare Liste von Aliasing bereitstellt, wie im obigen Beispiel gezeigt.

Aus der Manpage von Bash :

Aliases are not expanded when the shell is not interactive, unless the expand_aliases shell option is set using shopt (see the description of shopt under SHELL BUILTIN COMMANDS below).

Alias ​​in Bash-Skripten funktionieren

Der folgende Ansatz kann verwendet werden, um den Alias-Befehl in Bash-Skripten zum Laufen zu bringen. Variablen können im Bash-Skript verwendet werden, um die bevorzugten Optionen für jeden Befehl festzulegen, und auf diese Variablen kann im späteren Abschnitt des Skripts verwiesen werden, um die Notwendigkeit eines Alias ​​in Skripten zu erfüllen.

Fügen Sie am Anfang des Skripts den Befehl „shopt -s expand_aliases“ hinzu, um Aliase zu erweitern und den Alias-Befehl im Bash-Skript funktionieren zu lassen.

# cat script.sh
#!/bin/bash
# Script to check the alias output
shopt -s expand_aliases
alias ls1='ls -lrt'
ls1
# chmod +x script.sh
# ./script.sh
total 0
-rw-r--r-- 1 root root 0 Oct 12 12:14 file1
-rw-r--r-- 1 root root 0 Oct 12 12:14 file2


Linux
  1. Der Zweck von .bashrc und wie funktioniert es?

  2. Wie erhalte ich die Bash-Vervollständigung für Befehlsaliase?

  3. Rm-Befehl im Bash-Skript funktioniert nicht mit Variablen?

  4. Wie überprüfe ich die Teilzeichenfolge in Shell Script Bash?

  5. Wie macht man eine Datei spärlich?

Bash-Quellbefehl

35 Bash-Skriptbeispiele

So führen Sie ein Bash-Skript aus

Woher weiß ich den Namen der Skriptdatei in einem Bash-Skript?

Wie kann man Bash-Skripte in Vim hervorheben?

So ersetzen Sie Leerzeichen in Dateinamen mit einem Bash-Skript