你好,我是编程新手,我试着自己学习shell脚本。
在文件test.txt中,我必须在我知道的单词(四面体)后面的数字上加上一个条件;我写了这样的代码:
var=`grep -A 1 Tetrahedra test.txt`
if [ "$var" = "Tetrahedra 0" ]
then
#some action
fi但是由于echo $var提示,我有一个语法问题
编辑:
四面体
0
我不知道如何在测试中使用正确的语法(我尝试使用四面体\n 0),我想我错过了换行
或者也许有一种简单的方法可以做我想做的事情?我曾考虑过一个解决方案,但它非常混乱(就像编辑一个新文件,测试它,然后删除它)
谢谢
发布于 2016-07-24 05:27:09
您需要使用bash $'\n'语法创建一个新行。八进制转储od -c对于准确查看您拥有的字符非常有用,因为它可以使用转义显示非打印字符。
test.txt
Tetrahedra
0
Polygon
1tetra.sh
#!/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输出
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
YEShttps://stackoverflow.com/questions/38546022
复制相似问题