【问题标题】:After grepping some data into a variable i want to print only the variable is having some data otherwise i dont wabt to print在将一些数据放入变量后,我只想打印该变量有一些数据,否则我不会打印
【发布时间】:2019-08-20 01:44:40
【问题描述】:
#! /bin/bash

Var = `anil`

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

此代码无效 出来好像:expressuin 语法

【问题讨论】:

  • 每当您遇到 shell 脚本错误时,最好的第一步是将您的代码剪切并粘贴到 shellcheck.net 并更正它识别的错误(重要)和警告(可能很重要)。如果您无法理解其信息,请来这里询问。在这种情况下,您会发现您的脚本在空格和大小写方面都有问题。
  • @Anil :除了脚本中的语法错误之外,您不会在代码中的任何地方使用 grep。
  • 你似乎拼错了if

标签: bash shell


【解决方案1】:

您的 sn-p 中的语法错误:

#!/bin/bash

Var=`grep something somefile`

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

【讨论】:

    【解决方案2】:

    如果“anil”是一个字符串而不是一个命令,它应该像Var="anil"。如果它是一个命令,它应该是Var=$(anil)在这两种情况下都应该没有空格。还有你的if 应该是小写的

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

    【讨论】:

    • #!/bin/bash set var =grep - i error anil.txt if [ -n "$Var" ] ;然后回显“不为空”,否则回显“空”fi
    • @Anil 在答案中查看更新的代码。 完全复制粘贴并测试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 2013-07-03
    • 2015-11-09
    • 1970-01-01
    • 2021-12-06
    • 1970-01-01
    相关资源
    最近更新 更多