bourne shell 脚本中的正则表达式匹配运算符是什么?

2023-12-30

我正在尝试根据正则表达式验证用户输入。

vari=A
if [ $vari =~ [A-Z] ] ;
then
    echo "hurray"
fi

我得到的输出是 swf.sh[3]: =~: 未知的测试运算符。

您能让我知道我可以使用的测试操作员吗?


它没有内置到 Bourne shell 中,您需要使用 grep:

if echo "$vari" | grep -q '[A-Z]'; then
    echo hurray
fi

如果你想匹配整个字符串,请记住使用正则表达式锚点,^ and $。请注意,-qflag 使 grep 安静,因此它的唯一输出是返回值,用于匹配/不匹配。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bourne shell 脚本中的正则表达式匹配运算符是什么? 的相关文章

  • UNIX/Linux IPC:从管道读取。运行时如何知道数据长度?

    我有一个子进程 它生成一些可变长度的输出 然后使用半双工管道将其发送到父进程 在父级中 如何使用 read 函数 由于每次数据的长度可能不同 我如何在运行时知道数据的大小以对缓冲区执行任何 malloc 操作 fstat 函数可以用于管道文
  • Unix grep 正则表达式包含“x”但不包含“y”

    我需要一个用于 unix grep 的单遍正则表达式 其中包含 alpha 但不包含 beta grep alpha lt gt grep v beta 这里的其他答案展示了一些可以扭曲不同种类的正则表达式来做到这一点的方法 尽管我认为答案
  • 为什么 bash for 循环出错?

    我正在尝试使用 for 循环运行以下代码 但出现语法错误 请帮忙 输入格式 输入的第一行包含一个整数N 表示整数的个数 下一行包含 N 个空格分隔的整数 它们构成数组 A read n sum 0 for i 1 i lt n i do r
  • 使用 sed 更改 /etc/fstab

    我想改 etc fstab在脚本内 我想添加acl属性到根分区 One fstab行条目如下所示 UUID 730aee20 52b7 4920 75cd d0d995ef2445 ext3 errors remount ro 0 1 我想
  • 查找从 unix 命令行输入的单词出现的次数

    对于文件file1 txt其中包含 Apple fruit Apple tree Tree AApple AApklle Apple apple TREE Apple 我想查找该单词出现的次数Apple 输出应该是4 我的 script s
  • 在詹金斯管道作业中将变量传递给bash脚本

    我有一个 Jenkins 管道作业 其中我使用名为 setup sh 的 bash 脚本配置我的环境 如下所示 bin bash export ARCH 1 echo architecture ARCH 在 Jenkins 管道脚本中 我使
  • Shell脚本通过curl调用API并处理响应

    我需要创建一个通过curl 调用我的登录API 的shell 脚本 该脚本应该能够存储和处理来自curl api 调用的响应 myscript sh bin bash echo Extract bearer token from curl
  • 如何排除文件/文件夹以删除[重复]

    这个问题在这里已经有答案了 如何删除文件夹中的所有内容并排除特定文件夹和文件 以 tar 为例 tar exclude folder 编辑 我可以删除文件和文件夹 注意 运行以下命令时请小心 find type f grep v NameT
  • 在 Mac OS X 中使用命令行终止“loginwindow”进程

    到目前为止 我已经编写了以下 unix 命令 ps Ajc grep loginwindow cut c 16 20 sed s g 这会抓取 loginwindow 进程 使用 cut 和 sed 对其进行过滤 以返回 loginwind
  • Bash - 在文件名中间添加 0

    我有一堆文件 其名称为 mem0 csv内存1 csv mem153 csv 它们都在同一个文件夹中 当我在文件夹中执行 ls 时 它们按以下顺序显示 mem0 csv内存1 csvmem10 csvmem100 csv 内存2 csvme
  • 将 shell 转义的参数字符串传递给 Bourne shell 中的子命令

    假设我有一个要运行的命令 cmd 和一个包含我想要传递给函数的参数的变量 类似于 foo bar baz qux 就像这样 bin sh command cmd args foo bar baz qux 参数包含引号 如上所示 将包含空格的
  • Linux/UNIX 中 COM 编程的模拟

    组件对象模型 COM 是 或者曾经是 Windows 中提供语言中立的软件组件的方式 Linux UNIX 中是否有任何编程模型具有与通过二进制组件重用代码相同的理念 Sun RPC http en wikipedia org wiki R
  • 如何从 tcl 脚本运行 csh 脚本?

    我正在尝试从 tcl 脚本运行 csh 脚本 下面的 tcl 脚本调用 csh 脚本 usr bin tclsh set scripts path scratch TCL scripts scripts adders set synthes
  • 使用 os.system() 或 subprocess.call() 运行 sed 命令使 csv 文件不带分隔符

    我正在运行一个 Python 脚本 该脚本从 Postgres 数据库中转储 CSV 然后我想在所有这些文件中转义双引号 所以我使用 sed 来做到这一点 在我的Python代码中 sed for quotes sed i s g home
  • 如果xargs是map,那么filter是什么?

    我想xargs作为 UNIX shell 的映射函数 是什么filter功能 编辑 看来我必须更明确一点 假设我必须提供一个接受单个字符串作为参数并返回退出代码 0 或 1 的程序 该程序将充当它接受的字符串的谓词 例如 我可能决定将字符串
  • 信号发送到子进程和父进程

    据我了解 发送到父进程的信号不应发送给子进程 那么为什么在下面的示例中 SIGINT 会同时到达子级和父级呢 include
  • 如何在shell脚本中每2分钟查找目录中是否有新文件?

    我有一个名为 home user local 每隔两分钟左右 就会有一个新文件转储到此目录中 我需要每 2 分钟检查一次该目录 看看是否有新文件进入其中 如果有新文件 我需要将其列表放入变量中以供稍后使用 我该如何执行这个 shell 脚本
  • 使用Curl数据二进制选项,内存不足

    我正在尝试使用curl来上传数据 我需要上传二进制数据 不幸的是 我认为curl首先将文件二进制文件加载到内存中 因此对于大文件来说这是一个问题 我使用的系统的可用内存非常少 因此即使是 8mb 大的文件也很困难 我得到 curl opti
  • Unix 编程。不确定如何使用 passwd 结构

    我做了一些研究 但仍在努力解决passwd结构 http www opengroup org onlinepubs 000095399 basedefs pwd h html http www opengroup org onlinepub
  • shell脚本中的全局环境变量

    如何在bash脚本中设置全局环境变量 如果我做类似的事情 bin bash FOO bar or bin bash export FOO bar 变量似乎保留在本地上下文中 而我想在脚本执行完成后继续使用它们 运行你的脚本 myscript

随机推荐