Bash verfügt über mehrere Befehle, die mit der Shell geliefert werden (d. h. in die Bash-Shell eingebaut sind).
Wenn Sie einen eingebauten Befehl ausführen, führt ihn die Bash-Shell sofort aus, ohne ein anderes Programm aufzurufen.
Bash-Shell-integrierte Befehle sind schneller als externe Befehle, da externe Befehle normalerweise einen Prozess forken, um ihn auszuführen.
Lassen Sie uns in diesem Artikel einige nützliche eingebaute Bash-Shells mit Beispielen überprüfen.
1. Beispiel für einen Bash-Exportbefehl
Der Befehl export wird verwendet, um eine Variable oder Funktion in die Umgebung aller untergeordneten Prozesse zu exportieren, die in der aktuellen Shell ausgeführt werden.
export varname=value
export -f functionname # exports a function in the current shell.
Es exportiert eine Variable oder Funktion mit einem Wert. Der Befehl „env“ listet alle Umgebungsvariablen auf. Im folgenden Beispiel sehen Sie, dass env die exportierte Variable anzeigt.
$ export country=India $ env SESSIONNAME=Console country=India _=/usr/bin/env
Der Befehl „export -p“ zeigt auch alle exportierten Variablen in der aktuellen Shell an.
2. Bash eval-Befehlsbeispiel
Der Befehl eval kombiniert alle angegebenen Argumente und wertet den kombinierten Ausdruck aus, führt ihn aus und gibt den Beendigungsstatus des ausgeführten Befehls zurück.
$ cat evalex.sh if [ ! -z $1 ] then proccomm="ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | grep $1" else proccomm="ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu" fi eval $proccomm
Das obige Code-Snippet akzeptiert ein Argument, das das Muster für einen grep-Befehl ist. Dies listet die Prozesse in der Reihenfolge der CPU-Auslastung auf und sucht nach einem bestimmten Muster, das in der Befehlszeile angegeben wird.
Hinweis: Dieser Artikel ist Teil unserer fortlaufenden Bash-Tutorial-Reihe.
3. Bash-Hash-Befehlsbeispiel
Hash-Befehl verwaltet eine Hash-Tabelle, die die Pfadnamen des verwendeten Befehls enthält. Wenn Sie einen Befehl ausführen, sucht es nach einem Befehl in der Variable $PATH.
Aber wenn der Befehl in der Hash-Tabelle verfügbar ist, greift es dort auf und führt ihn aus. Die Hash-Tabelle verwaltet die Anzahl der Treffer, die für jeden Befehl gefunden wurden, der bisher in dieser Shell verwendet wurde.
$ hash hits command 1 /usr/bin/cat 2 /usr/bin/ps 4 /usr/bin/ls
Sie können einen bestimmten Befehl aus einer Hash-Tabelle löschen, indem Sie die Option -d und die Option -r verwenden, um die vollständige Hash-Tabelle zurückzusetzen.
$ hash -d cat $ hash hits command 2 /usr/bin/ps 4 /usr/bin/ls
4. Bash pwd-Befehlsbeispiel
pwd ist ein in die Shell eingebauter Befehl zum Drucken des aktuellen Arbeitsverzeichnisses. Es gibt im Grunde den Wert der eingebauten Variablen ${PWD}
zurück$pwd /home/sasikala/bash/exercises $echo $PWD /home/sasikala/bash/exercises
5. Bash readonly-Befehlsbeispiel
readonly-Befehl wird verwendet, um eine Variable oder Funktion als schreibgeschützt zu markieren, die nicht weiter geändert werden kann.
$ cat readonly_ex.sh #!/bin/bash # Restricting an array as a readonly readonly -a shells=("ksh" "bash" "sh" "csh" ); echo ${#shells[@]} # Trying to modify an array, it throws an error shells[0]="gnu-bash" echo ${shells[@]} $ ./readonly_ex.sh 4 readonly_ex.sh: line 9: shells: readonly variable
6. Bash-Shift-Befehlsbeispiel
Der Befehl shift wird verwendet, um die Positionsparameter um N Mal nach links zu verschieben, und benennt die Variable nach dem Verschieben entsprechend um.
$ cat shift.sh #! /bin/bash while [ $# -gt 0 ] do case "$1" in -l) echo "List command" ls shift ;; -p) echo "Process command" ps -a shift ;; -t) echo "Hash Table command" hash shift ;; -h) echo "Help command" help shift ;; esac done $./shift.sh -l -t List command analysis break testing t1.sh temp Hash Table command hits command 1 /usr/bin/ls
7. Beispiel für einen Bash-Testbefehl
Der Testbefehl wertet den bedingten Ausdruck aus und gibt basierend auf der Auswertung null oder eins zurück. Weitere Testoperatoren finden Sie auf der Handbuchseite von bash.
#! /bin/bash if test -z $1 then echo "The positional parameter \$1 is empty" fi
8. Bash getopts-Befehlsbeispiel
Der Befehl getopts wird verwendet, um die angegebenen Befehlszeilenargumente zu analysieren. Wir können die Regeln für Optionen definieren, d. h. welche Option Argumente akzeptiert und welche nicht. Wenn im Befehl getopts auf eine Option ein Doppelpunkt folgt, erwartet er ein Argument für diese Option.
getopts bietet zwei Variablen $OPTIND und $OPTARG, die den Index des nächsten Parameters bzw. Optionsargumente haben.
$ cat options.sh #! /bin/bash while getopts :h:r:l: OPTION do case $OPTION in h) echo "help of $OPTARG" help "$OPTARG" ;; r) echo "Going to remove a file $OPTARG" rm -f "$OPTARG" ;; esac done $ ./options.sh -h jobs help of jobs jobs: jobs [-lnprs] [jobspec ...] or jobs -x command [args] Lists the active jobs. The -l option lists process id's in addition to the normal information; the -p option lists process id's only.
9. Bash-Logout-Befehl
Eingebautes Logout zum Verlassen einer aktuellen Shell.
10. Bash umask-Befehlsbeispiel
Der Befehl umask legt eine Dateimodus-Erstellungsmaske für einen aktuellen Prozess fest. Wenn ein Benutzer eine Datei erstellt, basiert seine Standardberechtigung auf dem in umask festgelegten Wert. Die Standardberechtigung für die Datei ist 666 und wird mit den umask-Bits maskiert, wenn der Benutzer eine Datei erstellt.
Weitere Einzelheiten finden Sie in unserem Artikel Datei- und Verzeichnisberechtigungen.
Wenn der Benutzer eine Datei erstellt, wird 666 mit 022 maskiert, daher wäre die Standarddateiberechtigung 644.
$ umask 0022 $ > temporary $ ls -l temporary -rw-r--r-- 1 root root 4 Jul 26 07:48 temporary
11. Bash set-Befehlsbeispiele
set ist ein in die Shell eingebauter Befehl, der verwendet wird, um die internen Variablen der Shell zu setzen und zu ändern. set-Befehl ohne Argument listet alle Variablen und ihre Werte auf. Der Befehl set wird auch verwendet, um die Werte für die Positionsparameter festzulegen.
$ set +o history # To disable the history storing. +o disables the given options. $ set -o history -o enables the history $ cat set.sh var="Welcome to thegeekstuff" set -- $var echo "\$1=" $1 echo "\$2=" $2 echo "\$3=" $3 $ ./set.sh $1=Welcome $2=to $3=thegeekstuff
12. Bash unset-Befehlsbeispiele
unset built-in wird verwendet, um die Shell-Variable auf null zu setzen. unset wird auch verwendet, um ein Element eines Arrays zu löschen und
um ein komplettes Array zu löschen.
Weitere Einzelheiten zu Bash-Arrays finden Sie in unserem früheren Artikel 15 Bash-Array-Operationen
$ cat unset.sh #!/bin/bash #Assign values and print it var="welcome to thegeekstuff" echo $var #unset the variable unset var echo $var $ ./unset.sh welcome to thegeekstuff
Im obigen Beispiel wird der Variablen „var“ nach dem Unset eine Nullzeichenfolge zugewiesen.
13. Bash let-Befehlsbeispiel
let-Befehle werden verwendet, um arithmetische Operationen mit Shell-Variablen auszuführen.
$ cat arith.sh #! /bin/bash let arg1=12 let arg2=11 let add=$arg1+$arg2 let sub=$arg1-$arg2 let mul=$arg1*$arg2 let div=$arg1/$arg2 echo $add $sub $mul $div $ ./arith.sh 23 1 132 1
14. Bash shopt-Befehlsbeispiel
Der eingebaute Befehl shopt wird verwendet, um Shell-Optionen zu setzen und zurückzusetzen. Mit diesem Befehl können Sie Shell-Intelligenz nutzen.
$cat shopt.sh #! /bin/bash ## Before enabling xpg_echo echo "WELCOME\n" echo "GEEKSTUF\n" shopt -s xpg_echo ## After enabling xpg_echo echo "WELCOME\n" echo "GEEKSTUF\n" # Before disabling aliases alias l.='ls -l .' l. # After disabling aliases shopt -u expand_aliases l. $ ./shopt.sh WELCOME\n GEEKSTUF\n WELCOME GEEKSTUF total 3300 -rw------- 1 root root 1112 Jan 23 2009 anaconda-ks.cfg -r-xr-xr-x 1 root root 3252304 Jul 1 08:25 backup drwxr-xr-x 2 root root 4096 Jan 26 2009 Desktop shopt.sh: line 17: l.: command not found
Vor dem Aktivieren der Option xpg_echo hat die echo-Anweisung Escape-Sequenzen nicht erweitert. „Ich.“ hat einen Alias für ls -l des aktuellen Verzeichnisses. Nach dem Deaktivieren der Option expand_aliases in der Shell wurden Aliase nicht erweitert, Sie konnten einen Fehler l bemerken. Befehl nicht gefunden.
15. Bash printf-Befehlsbeispiel
Ähnlich wie printf in der C-Sprache wird bash printf built-in verwendet, um Druckvorgänge zu formatieren.
In Beispiel 13 führt das Skript arithmetische Operationen an zwei Eingaben durch. In diesem Skript können Sie anstelle der echo-Anweisung die printf-Anweisung verwenden, um die formatierte Ausgabe wie unten gezeigt zu drucken.
Ersetzen Sie in arit.sh die echo-Anweisung durch diese printf-Anweisung.
printf "Addition=%d\nSubtraction=%d\nMultiplication=%d\nDivision=%f\n" $add $sub $mul $div $ ./arith.sh Addition=23 Subtraction=1 Multiplication=132 Division=1.000000