首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用条件测试grep Shell 1变量(语法问题)- -A脚本

如何使用条件测试grep Shell 1变量(语法问题)- -A脚本
EN

Stack Overflow用户
提问于 2016-07-24 04:11:41
回答 1查看 106关注 0票数 1

你好,我是编程新手,我试着自己学习shell脚本。

在文件test.txt中,我必须在我知道的单词(四面体)后面的数字上加上一个条件;我写了这样的代码:

代码语言:javascript
复制
var=`grep -A 1 Tetrahedra test.txt`
if [ "$var" = "Tetrahedra 0" ]
then
#some action
fi

但是由于echo $var提示,我有一个语法问题

编辑:

四面体

0

我不知道如何在测试中使用正确的语法(我尝试使用四面体\n 0),我想我错过了换行

或者也许有一种简单的方法可以做我想做的事情?我曾考虑过一个解决方案,但它非常混乱(就像编辑一个新文件,测试它,然后删除它)

谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-07-24 05:27:09

您需要使用bash $'\n'语法创建一个新行。八进制转储od -c对于准确查看您拥有的字符非常有用,因为它可以使用转义显示非打印字符。

test.txt

代码语言:javascript
复制
Tetrahedra
0
Polygon
1

tetra.sh

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

var=`/bin/grep -A 1 Tetrahedra test.txt`
echo -n "$var" | od -c
match="Tetrahedra"$'\n'"0"
echo -n "$match" | od -c
if [ "$var" == "$match" ]; then
    echo "YES"
else
    echo "NO"
fi

输出

代码语言:javascript
复制
bash tetra.sh

0000000   T   e   t   r   a   h   e   d   r   a  \n   0
0000014
0000000   T   e   t   r   a   h   e   d   r   a  \n   0
0000014
YES
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38546022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档