首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

在 Bash 脚本中,可以使用 compgen 命令来获取名称与特定模式匹配的变量列表。以下是一个示例:

代码语言:bash
复制
#!/bin/bash

# 定义一些变量
FOO=foo
BAR=bar
BAZ=baz

# 使用 compgen 命令获取名称与特定模式匹配的变量列表
variables=$(compgen -v | grep '^VAR_')

# 输出匹配的变量列表
echo "匹配的变量列表:"
echo "$variables"

在这个示例中,我们使用 compgen -v 命令获取所有的变量列表,然后使用 grep 命令过滤出以 VAR_ 开头的变量。最后,我们将匹配的变量列表输出到控制台上。

需要注意的是,compgen 命令只能获取到当前 Bash 脚本中定义的变量,无法获取到其他脚本中定义的变量。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

linux下命令自动补全总结

补全条目以相同方式生成,就好像可编程补全代码用相同补全选项直接生成了补全条目一样,如果指定了word,则只显示匹配条目。...,从数组变量COMPREPLY中获取补全条目。...“-W wordlist”:使用特殊变量IFS中字符拆分单词列表wordlist,并扩展拆分后每个单词,结果中待补全单词 匹配条目就是补全条目。...“-X filterpat”:filterpat是进行文件名扩展时使用模式,它作用于通过前面的选项和参数生成补全列表,并把每个过滤模式匹配条目删除,模式中前导叹号表示否定,这时会删除过滤模式匹配条目...COMP_TYPE:一个整数值,触发调用补全函数时试图进行补全类型相对应,正常补全为“TAB”,连续输入制表符后补全列表为“?”,列出其它部分补全条目为“!”

6.6K50

Linux学习笔记(四)

BASH_SHELL这个环境变量默认情况下并未设置) login bash 登录shell可以让用户计算机交流 no login bash 非登录shell不可用让用户计算机交流。...match)时, 包含了匹配模式和子模式 BASH_SOURCE 含有当前正在执行hel函数所在源文件名数组变量 BASH_SUBSHELL 当前子shell环境嵌套级别(初始值是0) BASH_VERSINFO...函数名称变量 描述 FUNCNEST 当设置成非零值时,表示所允许最大函数嵌套级数(一旦超出,当前命令即被终止) GLOBIGNORE 冒号分隔模式列表,定义了在进行文件名扩展时可以忽略一组文件名...,以显示bash历史中每条命令时间戳 HISTIGNORE 由冒号分隔模式列表,用来决定历史文件中哪些命令会被忽略 HISTSIZE 最多在历史文件中存多少条命令 HOSTFILE shell在补全主机名时读取文件名称...LC_CTYPE 决定如何解释出现在文件名扩展和模式匹配字符 LC_MESSAGES 在解释前面带有S双引号字符串时,该环境变量决定了所采用语言环境设置 LC_NUMERIC 决定着格式化数字时采用语言环境设置

1.1K10
  • Bash概论 - Linux系列教程补充篇

    Bash特殊字符 1. 通配符: *: 匹配任何字符 **: 匹配任何字符串 *?: 匹配任何单个字符 2....位置变量 位置变量对应于命令行参数, 其中$0为脚本名称, $1为第一个参数, 依次类推, 参数超过9个必须使用${}引用变量。...模式匹配操作符 ${var#pattern} 从var头部开始, 删除和pattern匹配最短模式串, 然后返回 剩余串 ${var##pattern} 从var头部开始, 删除和pattern匹配最长模式串...替换var中和pattern匹配最长模式串 个人最常用是最后一个,常用于for循环中。..., 则读取参数到内置变量OPTARG中 内置变量OPTIND保存着将被处理命令行参数(位置参数)数值选项列表处理完毕getopts返回1, 否则返回0 如: 在我们推出一步绘图脚本里面,就是使用Bash

    1.2K70

    linux

    管道符 重定向  环境变量 本章首先讲解:文件读写操作有关重定向技术,5种模式, 标准覆盖输出重定向,标准追加输出重定向,错误覆盖输出重定向,错误追加输出重定向   输入重定向 深入了解管道符命令:...进程号  PPID 父进程号  C Cpu 利用率 STIME  启动系统时系统时间  TTY  进程启动时终端设备  TIME 启动需要累积时间 CMD  启动程序名称 ps命令只能展示某个特定时间信息...在Linux系统中,变量名称一般都是大写,命令则都是小写 PATH环境变量查询,多个路径组成环境变量,由:隔开 冒号隔开。...4.分别解释Shell脚本中$0$3变量作用。 答:在Shell脚本中,$0代表脚本文件名称,$3则代表该脚本在执行时接收第3个参数。...6.for条件循环语句循环结构是什么样子? 答:for条件循环语句结构为“for变量名in取值列表do命令序列done”,如图4-21所示。

    1.4K51

    Linuxshell之二

    Shell 通配符主要用于模式匹配,如文件名匹配、路径名搜索、字串查找等。常用通配符有*、?...和括在[ ]中字符序列等,用户可以在作为命令参数文件名中包含这些通配符,构成一个所谓模式串”,以在执行过程中进行模式匹配。这三个通配符含义如下: *匹配任意长度字串 ?匹配任何单个字符。...[ ]匹配任何包含在方括号内单字符,它指定了模式匹配字符范围,只要文件名中[ ]处字符在指定范围之内,那么这个文件名就与该模式匹配。...Yaoyuan's Server $ echo $ORACLE_HOME /u01/app/oracle/product/19.0.0/db_1 一些常见 bash 环境变量 名称 作用 USER...@yaoyuan home$ cd - /home oracle@yaoyuan home$ cd ~ 06 — 帮助命令 man命令:只要在命令 man 后输入想要获取命令名称(如 ls),man

    76210

    Bash获取 Python 模块变量

    Bash获取 Python 模块变量列表可以通过使用 python -c 来运行 Python 代码并输出变量列表。...1、问题背景在编写 Bash 补全脚本时,需要获取已安装 Python 模块中模式匹配所有变量。为了避免解析注释等内容,希望仅使用 Python 相关功能。...中获取该模块中所有变量(即非函数、非内置全局变量),可以使用以下步骤:方法:使用 dir() 函数结合过滤使用 python -c 运行 Python 脚本。...使用 dir() 获取模块中所有名称。使用 inspect 模块过滤出变量(排除函数、类、模块等)。...print(' '.join(variables)):将变量列表以空格分隔形式打印出来。执行结果在执行上述命令后,输出会是:x y z这表示 mymodule 中三个变量 x、y、z。

    8610

    Bash脚本编程(原创)

    如果用sh来调用bashbash在启动后进入posix模式,它会尽可能模仿sh历史版本启动行为,以便遵守POSIX标准。...在此模式下,交互shells扩展变量ENV,从以此为文件名文件中读取命令并执行。bash会探测自己是不是被远程shell守护程序运行(通常是rshd)。...read 用于从终端或者文件中读取输入,它读取整行输入,而末尾换行符被翻译成 null(空字符串)。如果没有指定名称,读取行就被赋值到特定变量 REPLY 中。...此命令也经常用在bash脚本开头出以读取配置文件,获取其中变量值。...Bash 允许在信号上使用象征性名称,例如没有前缀(SIG)或者用数字作为信号名称。一个叫做 EXIT 或者数字 0 伪信号,将在 shell 退出时,导致一个陷阱执行。

    1.4K30

    《前端运维》一、Linux基础--06Shell流程控制

    … done; 首先,我们要注意是当变量值在列表里,for 循环即执行一次所有命令,使用变量获取列表中的当前取值。...命令可为任何有效 shell 命令和语句。in 列表可以包含替换、字符串和文件名。另外,in列表是可选,如果不用它,for循环使用命令行位置参数。 我们来看个例子: #!...可以用 case 语句匹配一个值一个模式,如果匹配成功,执行相匹配命令。语法格式如下: case 值 in 模式1) command1 command2 ......取值可以为变量或常数,匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。取值将检测匹配每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。...如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。我们来看个例子: #!

    47120

    Ansible之 AWX 启用facts缓存和模板问卷调查

    包含主机特定信息,这些信息可以像常规变量一样使用。通常,每个剧本都会在执行第一个任务之前自动运行setup模块,以便从剧本中主机模式匹配托管主机中收集事实。...如果为 EXTRA VARIABLES 变量字段选择了启动时提示 PROMPT ON LAUNCH,则系统将提示 AWX 用户在使用作业模板来启动作业时以交互方式式修改所使用额外变量列表。...另一种即通过作业模板调查来实现 作业模板调查 作业模板调查允许作业模板在用于启动作业时显示简写形式,提示用户输入用于为额外变量设置值信息。 提示用户输入设置额外变量其他方法相比具有多个优势。...用户无需详细了解额外变量运行方式或使用情况。他们也不需要了解 Playbook 所使用额外变量名称。... PROMPT ON LAUNCH 方法相比,这种方式能够更加友好地提示用户输入额外变量值。 回答类型:除了提供用户友好提示之外,调查还可以定义用户输入规则,并对其执行验证。

    1.2K30

    BashShell变量

    ,在使用正则表达式比较运算符 =~ 进行肯定匹配(positive match)时,包含了匹配模式和子模式 BASH_SOURCE 含有当前正在执行 Shell 函数所在源文件名数组变量 BASH_SUBSHELL...,由冒号分隔 FUNCNAME 当前执行 Shell 函数名称 FUNCNEST 当设置成非零值时,表示所允许最大函数嵌套级数(一旦超出,当前命令即被终止) GLOBIGNORE 冒号分隔模式列表...HOSTFILE Shell 在补全主机名时读取文件名称 HOSTNAME 当前主机名称 HOSTTYPE 当前运行 Bash Shell 机器 IGNOREEOF Shell 在退出前必须收到连续...,能够覆盖 LANG 变量 LC_COLLATE 设置对字符串排序时用排序规则 LC_CTYPE 决定如何解释出现在文件名扩展和模式匹配字符 LC_MESSAGES 在解释前面带有 $ 双引号字符串时...定义了 Shell 所在操作系统 PIPESTATUS 含有前台进程退出状态列表数组变量 POSIXLY_CORRECT 设置了的话,Bash 会以 POSIX 模式启动 PPID Bash Shell

    2.4K30

    Shell系统内置变量

    变量只有在 bash 开启 extdebug 选项情况下才会设置 BASH_ARGV 该数组变量存储是每个 bash 调用栈中传递给 bash 参数列表。...FIGNORE 由冒号分隔后缀名列表,在进行文件名补全时会忽略以这些后缀名结尾文件名 GLOBIGNORE 它是由冒号分隔模式列表,表示通配时忽略文件名集合。...同时 TMOUT 也用于作为 read 命令默认超时时间。 EXECIGNORE 它是由冒号分隔模式列表,表示在 $PATH 中搜索命令时忽略文件名集合。...TMPDIR 若设置了,则 bash 在该值所指定目录下创建临时文件 其他 -- BASH_REMATCH 当使用 =~ 进行正则匹配时,该数组变量存储是整体或个分组匹配字符串位置,其中 ${BASH_REMATCH0...} 整个正则表达式匹配位置 n 第 n 个分组匹配位置 RANDOM 产生一个 0-32767 之间随机整数 REPLY read 命令默认将标准输入存入该变量, select 命令也默认将选择序号存入该变量

    1.6K00

    shell脚本编程之路1

    四种模式字符串提取和替换: #第一种:对大括号中以逗号分割文件列表进行拓展。如 touch {a,b}.txt 结果为a.txt b.txt。...# 匹配结果 ${var%pattern} #shell在variable中查找,看它是否一给模式pattern结尾,如果是,就从命令行把variable中内容去掉 右边最短 匹配模式 ${var...%%pattern} #如果是,就从命令行把把variable中内容去掉 右边最长 匹配模式 ${var#pattern} #如果是,就从命令行把variable中内容去掉 左边 最短匹配模式...表示仅一个任意字符匹配,[…]表示匹配中括号里面的字符,[!…]表示不匹配中括号里面的字符 (基础正则)。...  \A :显示时间为24小时格式:HH:MM   \u :当前用户账号名称   \v :BASH版本信息   \w :完整工作目录名称   \W :利用basename取得工作目录名称,只显示最后一个目录名

    2.7K20

    Vim编辑器Shell命令脚本

    章节简述: 本章首先介绍如何使用Vim编辑器来编写和修改文档,然后通过逐步配置主机名称、系统网卡以及软件仓库等文件,帮助大家加深Vim编辑器中诸多命令、快捷键模式理解。...4.1.2 配置主机名称 为了便于在局域网中查找某台特定主机,或者对主机进行区分,除了要有IP地址外,还要为主机配置一个主机名,主机之间可以通过这个类似于域名名称来相互访问。...首先创建用户名称列表文件users.txt,每个用户名称单独一行。...在执行该脚本后,会自动使用从列表文件users.txt中获取到所有的用户名称,然后逐一使用“id用户名”命令查看用户信息,并使用$?判断这条命令是否执行成功,也就是判断该用户是否已经存在。...然后将前面的双分支if条件语句for循环语句相结合,让脚本从主机列表文件ipaddrs.txt中自动读取IP地址(用来表示主机)并将其赋值给HLIST变量,从而通过判断ping命令执行后返回值来逐个测试主机是否在线

    1.3K10

    官方博文|Zabbix Agent: 主动模式 VS 被动模式

    在这样场景下,不得不使用主动模式。 现在,假设您打算在您主机上设置除监视之外自动问题解决机制。Windows services最简单示例是配置项和触发器,以检查特定服务健康状况。...主动模式似乎更适合这个场景——Zabbix Server根本不进行干预,只接收已经收集数据即可。处理都是在Agent上完成,Agent它运行Bash脚本,等待15秒,然后获取数据。...更改被动Server列表 在zabbix_agentd中配置被动检查时。conf,您只需要更改一个参数Server。它是一个以逗号分隔IP地址和DNS名称列表,代理将从中接受传入连接。...更改主动动Server列表 主动模式需要更深入配置。首先,您需要ServerActive变量。这是Zabbix服务器或代理IP地址和DNS名称列表,代理将每两分钟连接一次,以请求配置。...此主机名必须前端中指定主机名(区分大小写)匹配。 ? 前端主机名 要在前端查看主机名,请转到Configuration > Hosts。注意,这个值是区分大小写。 ?

    4K10

    《前端运维》一、Linux基础–06Shell流程控制

    … done; 首先,我们要注意是当变量值在列表里,for 循环即执行一次所有命令,使用变量获取列表中的当前取值。...命令可为任何有效 shell 命令和语句。in 列表可以包含替换、字符串和文件名。另外,in列表是可选,如果不用它,for循环使用命令行位置参数。 我们来看个例子: #!...可以用 case 语句匹配一个值一个模式,如果匹配成功,执行相匹配命令。语法格式如下: case 值 in 模式1) command1 command2 ......取值可以为变量或常数,匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。取值将检测匹配每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。...如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。我们来看个例子: #!

    35730

    Shell Style Guide

    如果使用大写字母,可以添加唯一前缀,如MY_。 变量使用前最好做初始化动作,以防环境中相同名称变量被脚本内引用,出现不可预知情况。 循环中变量名应该和正在被循环变量名保持相似的名称。...每次只声明一个变量,不要使用组合声明,比如a=1 b=2; 使用 local 声明特定功能变量。...可选项中多个命令应该被拆分成多行,模式表达式、操作和结束符 ;; 在不同行。 匹配表达式比 case 和 esac 缩进一级。多行操作要再缩进一级。 模式表达式前面不应该出现左括号。...以下按照优先顺序列出建议: 现有代码保持一致 单字符变量特定情况下才需要被括起来 使用引号引用变量,参考下一节:变量引用 正例: # 位置变量和特殊变量,可以不用大括号: echo "Positional...特别注意 [[ 中模式匹配引号规则 在无特殊情况下,推荐使用 而非 * # '单引号' 表示禁用变量替换 # "双引号" 表示需要变量替换 # 示例1: 命令替换需使用双引号 flag="$(some_command

    7.5K10

    shell programming tutorial

    因此在使用管道获取参数,我们一定要增加对于参数判断,或者,我们在sh和bash解释器中, 增加set –o pipefail 设置,可以让管道执行结果是否成功,变得可信。...2.x 版本以上 Bash 中可以用双方括号来测试表达式值,此时可以使用通配符进行模式匹配。 name=Tom [[ $name = [Tt]?? ]]  echo $?...获取变量值,${BASH:0:1} 可以代替 / $(...) 命令替换 $[...] 让无类型变量参与算术运算 $((...))...同上 ((…)) 算术运算 [ ... ] 条件测试,等价于test命令 [[ ... ]] 条件测试,支持模式匹配通配符 七、条件分支语句 (一)if条件语句 if expr1      #如果...表达式 expr 按顺序匹配每个模式,一旦有一个模式匹配成功,则执行该模式后面的所有命令,然后退出 case。

    1.4K90
    领券