微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

bash:获取名称与特定模式匹配的variables列表

在bash中

echo ${!X*}

将打印所有名称以“X”开头的variables名称

是否有可能获得相同的任意模式,例如获取名称包含一个“X”的variables的所有名称在任何位置?

一个命令返回文件的所有者?

我如何向用户显示在PowerShell脚本中可供select的打印机列表?

在windows操作系统下运行shell脚本

文件添加到类path或在batch file中循环?

如何使用shell脚本在文件中附加多行文本

使用内建命令compgen:

compgen -A variable | grep X

这应该做到这一点:

env | grep ".*X.*"

编辑:对不起,该值也在X中查找。 该版本仅在var名称中查找X.

env | awk -F "=" '{print $1}' | grep ".*X.*"

正如Paul在评论中指出的那样,如果你也在寻找局部变量,env需要被set替换:

set | awk -F "=" '{print $1}' | grep ".*X.*"

这将仅在变量名称搜索X,并只输出匹配的变量名称

set | grep -oP '^w*Xw*(?==)'

或者更容易编辑搜索到的模式

set | grep -oP '^w*(?==)' | grep X

或者干脆(也许更容易记住)

set | cut -d= -f1 | grep X

如果要在变量名称中匹配X,但在名称=值形式中输出,则:

set | grep -P '^w*Xw*(?==)'

如果你想匹配X里面的变量名,但是只输出值,那么:

set | grep -P '^w*Xw*(?==)' | grep -oP '(?<==).*'

最简单的可能是做一个

printenv |grep D.*=

唯一的区别是它也打印出变量的值。

env | awk -F= '{if($1 ~ /X/) print $1}'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐