Bash 将一些数据归为变量后,我只想打印变量中有一些数据,否则我不想打印

Bash 将一些数据归为变量后,我只想打印变量中有一些数据,否则我不想打印,bash,shell,Bash,Shell,此代码不起作用 将代码片段中的语法错误表现为:expressuin语法错误: #! /bin/bash Var = `anil` If [ -n "$Var" ] ; then echo " nn" else echo "emp" fi 如果anil是一个字符串而不是命令,那么它应该类似于Var=anil。如果它是一个命令,它应该是Var=$anil。但在这两种情况下,它都不应该有空格。您的if也应该是小写的 每当您遇到shell脚本错误时,最好的第一步是将代码剪切并粘贴到其中,并更正错

此代码不起作用
将代码片段中的语法错误表现为:expressuin语法错误:

#! /bin/bash

Var = `anil`

If [ -n "$Var" ] ; then
echo " nn"
else
echo "emp" 
fi

如果anil是一个字符串而不是命令,那么它应该类似于Var=anil。如果它是一个命令,它应该是Var=$anil。但在这两种情况下,它都不应该有空格。您的if也应该是小写的


每当您遇到shell脚本错误时,最好的第一步是将代码剪切并粘贴到其中,并更正错误,重要的是,警告可能是它识别的重要错误。如果你在理解它的信息方面有困难,那就过来问问。在这种情况下,您会发现您的脚本在空格和大小写方面都有问题。@Anil:除了脚本中的语法错误之外,代码中的任何地方都没有grep。如果出现,您似乎有拼写错误/bin/bash set var=grep-i错误anil.txt,如果[-n$var];然后回显不为空,否则回显为空fi@Anil请参阅答案中的更新代码。准确复制粘贴并测试。
#!/bin/bash

Var=`grep something somefile`

if [ -n "$Var" ] ; then
echo " nn"
else
echo "emp"
fi
#!/bin/bash
Var=`grep -i error anvil.txt`
if [ -n "$Var" ] ; then
echo " nn"
else
echo "emp"
fi