首页
学习
活动
专区
工具
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

    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

    Linux的shell之二

    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

    76610

    在 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。

    9210

    Bash脚本编程(原创)

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

    1.4K30

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

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

    1.2K30

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

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

    47520

    Vim编辑器与Shell命令脚本

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

    1.3K10

    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

    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

    官方博文|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。注意,这个值是区分大小写的。 ?

    4.2K10

    Shell Style Guide

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

    7.5K10

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

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

    36430

    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
    领券