写一个shell脚本,利用正则表达式,同时不含有"DELIVRD"关键字,如果字符串符合条件则输出正确,错误则输出不正确
时间: 2024-12-16 22:25:07 浏览: 4
当你要编写一个Shell脚本来检查字符串是否满足条件(即不包含 "DELIVRD" 关键字),你可以创建一个简单的bash script,如下所示:
```bash
#!/bin/bash
# 用户输入的字符串
input_string=$1
# 使用grep和grep -v组合来过滤出不包含 "DELIVRD" 的内容
if ! grep -q 'DELIVRD' <<< "$input_string"
then
echo "正确,字符串中不含有 'DELIVRD'"
else
echo "错误,字符串中含有 'DELIVRD'"
fi
# 脚本接受一个命令行参数
# 如果没有提供参数,可以提示用户输入
if [ -z "$input_string" ]; then
echo "请输入一个字符串:"
read input_string
# 然后再运行上述检查
if ! grep -q 'DELIVRD' <<< "$input_string"
then
echo "正确,字符串中不含有 'DELIVRD'"
else
echo "错误,字符串中含有 'DELIVRD'"
fi
fi
```
你可以将这个脚本保存到一个文件(例如`check_string.sh`),然后通过以下方式运行它,并传入你想要检查的字符串作为参数:
```sh
./check_string.sh "你的字符串"
```
如果没有提供参数,它会提示你输入一个字符串。
相关问题
写一个shell脚本,利用正则表达式,要求一行字符串不含有"DELIVRD"关键字,如果字符串符合条件则输出正确,错误则输出不正确
你可以创建一个简单的bash shell脚本来完成这个任务。下面是一个例子:
```bash
#!/bin/bash
# 定义输入字符串变量
STRING="这是一个测试字符串,不含DELIVRD"
# 使用grep和正则表达式检查字符串是否包含 "DELIVRD"
if [[ ! "$STRING" =~ DELIVRD ]]; then
echo "正确"
else
echo "不正确"
fi
```
在这个脚本中,`=~` 符号用于做正则匹配,`!` 表示否定条件。如果输入的字符串 `$STRING` 不包含 "DELIVRD" 关键字,脚本会输出 "正确",反之则输出 "不正确"。
如果你想让这个脚本可以接受用户输入作为字符串,可以稍微修改一下:
```bash
#!/bin/bash
read -p "请输入一个字符串: " STRING
if [[ ! "$STRING" =~ DELIVRD ]]; then
echo "正确"
else
echo "不正确"
fi
```
现在你可以运行这个脚本并输入任何字符串,它会判断是否含有 "DELIVRD"。
阅读全文