以下UNIX命令是什么意思?

时间:2014-11-11 04:15:49

标签: shell unix

以下突出显示的UNIX命令是什么意思???

    grep -n "$string" $filename   
    if[$? -eq 0] #what does this command mean???
    then
    echo "string is match"

1 个答案:

答案 0 :(得分:0)

不要尝试制作粗体代码(你可以这么做,但很难: if [ $? -eq 0 ] ,缩进也无法正常工作。只需在行{{{{{{{ 1}}。您应该添加缺少的if [ $? -eq 0 ] # What does this line mean?以获得完整性。

  

fi
  的 grep -n "$string" $filename
  if[$? -eq 0] # What does this command mean?
  then
  echo "string is matched"

通过写作获得:

fi

> `grep -n "$string" $filename` > **`if[$? -eq 0] # What does this command mean?`** > `then` >         `echo "string is matched"` > `fi` 是执行的最后一个命令的退出状态,在此上下文中表示$?。 0表示成功;任何非零状态都表示某种失败。一般而言,退出状态没有标准。 POSIX会对某些命令的退出状态进行立法。例如,对于grep,它说:

  • grep - 选择了一行或多行。
  • 0 - 未选择任何行。
  • 1 - 发生错误。

如上所述,您的代码片段意味着'执行命令>1if[0,其中包含两个参数if[1-eq。这基本上没有意义,因为不太可能有这些名称的命令。

可能编写的内容使用空格 - 空格在shell中一般都很关键,特别是测试命令:

0]

这意味着'测试if [ $? -eq 0 ] 的值是否为零(这意味着$?成功执行)。

但是,没有必要使用test命令。脚本可以写成:

grep

如果您不想查看if grep -n "$string" "$filename" then echo "string is matched" fi 的输出,只需获取状态,然后使用grep代替grep -q