[LINUX] Erweiterung der Bash-Variablenparameter

Einführung

Ich werde die variable Parametererweiterung von bash bald vergessen, also werde ich sie organisieren.

Teil der Bash-Parametererweiterung

Notation Bedeutung
${Variablennamen#Muster} 最短マッチで、Musterに前方一致した部分を取り除く
${Variablennamen##Muster} 最長マッチで、Musterに前方一致した部分を取り除く
${Variablennamen%Muster} 最短マッチで、Musterに後方一致した部分を取り除く
${Variablennamen%%Muster} 最長マッチで、Musterに後方一致した部分を取り除く

Es gibt viele andere Notationen als die oben genannten, aber vorerst gibt es vier.

Anwendungsbeispiel

$ {Variablenname #Pattern}

$ {Variablenname #Pattern} ist eine` Parametererweiterung, die den Teil entfernt, der dem Muster mit der kürzesten Übereinstimmung vorausgeht.

.sh


#!/bin/bash

filepath=/home/name/abc.txt
echo "${filepath#*/}"

home/name/abc.txt

Die kürzeste Übereinstimmung ist die ** kürzeste ** Zeichenfolge, die dem angegebenen Muster entspricht.

Muster */
String /home/name/abc.txt
Kürzeste Übereinstimmung Vor dem Haus/
Ergebnis home/name/abc.txt

$ {Variablenname ## Muster}

$ {Variablenname #Pattern} ist die längste Übereinstimmung und eine Parametererweiterung, die den Teil entfernt, der dem Muster vorausgeht.

.sh


#!/bin/bash

filepath=/home/name/abc.txt
echo "${filepath##*/}"

abc.txt

Die längste Übereinstimmung bezieht sich auf die ** längste ** Zeichenfolge, die dem angegebenen Muster entspricht.

Muster */
String /home/name/abc.txt
Längste Übereinstimmung /home/name/
Ergebnis abc.txt

Es kann verwendet werden, um den Dateinamen aus dem Dateipfad abzurufen.

$ {Variablenname% Muster}

$ {Variablenname% pattern} ist eine `Parametererweiterung, die den Teil entfernt, der dem Muster mit der kürzesten Übereinstimmung entspricht.

.sh


#!/bin/bash

filepath=/home/name/abc.txt
echo "${filepath%/*}"

/home/name
Muster /*
String /home/name/abc.txt
Kürzeste Übereinstimmung abc.txt
Ergebnis /home/name

Es kann verwendet werden, um das Verzeichnis des Dateipfads ohne den "Dateinamen" abzurufen.

$ {Variablenname %% Muster}

$ {Variablenname %% Muster} ist die längste Übereinstimmung und ist eine Parametererweiterung, die den Teil entfernt, der dem Muster entspricht.

.sh


#!/bin/bash

filepath=/home/name/abc.txt
echo "${filepath%%/*}"

(Keiner)
Muster /*
String /home/name/abc.txt
Längste Übereinstimmung /home/name/abc.txt
Ergebnis (Keiner)

Referenz

Neues Linux-Lehrbuch

Recommended Posts

Erweiterung der Bash-Variablenparameter
[Python] Richtige Verwendung der Karte
Erweiterung der Bash-Variablenparameter
Python-Variablenerweiterung, Format
Über Variable von Chainer
[Persönliches Memo] Automatischer Abschluss der Bash
Umgang mit Zitaten in [bash]
Erweiterung des Python-Wörterbuchs um Argumente
Beurteilung von Feiertagen einschließlich Feiertagen mit Bash