Sie könnten verwenden env | grep '^prefix'
.
Zum Beispiel:
$ env | grep '^LESS'
LESSBINFMT=*u.
LESS=-MMqx4ij3
LESSOPEN=| /usr/bin/lesspipe %s
LESSCLOSE=/usr/bin/lesspipe %s %s
Wenn Sie nur die Werte und nicht die Variablennamen möchten, verwenden Sie awk:
$ env | awk -F= '/^LESS/ {print $2}'
*u.
-MMqx4ij3
| /usr/bin/lesspipe %s
/usr/bin/lesspipe %s %s
(oder drucken Sie $ 1 nur für die Variablennamen)
Update 2019-05-17
Ich wurde durch eine Gegenstimme auf diese Antwort zurückgeführt und stellte fest, dass es eine offensichtliche Verbesserung gibt:
typeset -p
funktioniert besser als env
, es gibt alle Variablen aus, ob sie exportiert werden oder nicht. Zum Beispiel:
typeset -p | awk '$3 ~ /^apple_/ { print $3 }'
So verwenden Sie eine Variable anstelle einer festen Zeichenfolge:
prefix=apple_
typeset -p | awk '$3 ~ "^"pfx { print $3 }' pfx="$prefix"
oder exportieren Sie einfach das Präfix $, damit es im ENVIRON-Array von awk verfügbar ist:
export prefix=apple_
typeset -p | awk '$3 ~ "^"ENVIRON["prefix"] { print $3 }'
Hinweis: Mit ein wenig Arbeit kann dies für andere Shells wie ksh oder zsh verwendet werden. Es ist jedoch wichtig zu beachten, dass das Ausgabeformat für typeset -p
in anderen Shells unterschiedlich ist, sodass das awk-Skript entsprechend angepasst werden muss Sie.