Bạn có thể sử dụng env | grep '^prefix'
.
Ví dụ:
$ env | grep '^LESS'
LESSBINFMT=*u.
LESS=-MMqx4ij3
LESSOPEN=| /usr/bin/lesspipe %s
LESSCLOSE=/usr/bin/lesspipe %s %s
Nếu bạn chỉ muốn các giá trị và không phải tên biến, hãy sử dụng awk:
$ env | awk -F= '/^LESS/ {print $2}'
*u.
-MMqx4ij3
| /usr/bin/lesspipe %s
/usr/bin/lesspipe %s %s
(hoặc in $ 1 chỉ cho các tên biến)
Cập nhật 2019-05-17
Tôi đã được đưa trở lại câu trả lời này bởi một upvote và nhận ra rằng có một sự cải thiện rõ ràng:
typeset -p
hoạt động tốt hơn env
, nó xuất ra tất cả các biến cho dù chúng được xuất hay không. Ví dụ:
typeset -p | awk '$3 ~ /^apple_/ { print $3 }'
Để sử dụng một biến chứ không phải là một chuỗi cố định:
prefix=apple_
typeset -p | awk '$3 ~ "^"pfx { print $3 }' pfx="$prefix"
hoặc chỉ xuất tiền tố $ để nó có sẵn trong mảng ENVIRON của awk:
export prefix=apple_
typeset -p | awk '$3 ~ "^"ENVIRON["prefix"] { print $3 }'
Lưu ý: với một chút công việc, điều này có thể được thực hiện để hoạt động với các shell khác như ksh hoặc zsh, nhưng điều quan trọng cần lưu ý là định dạng đầu ra cho typeset -p
khác với các shell khác, vì vậy tập lệnh awk sẽ phải được sửa đổi cho phù hợp họ