您好我是shell
脚本编写的初学者。
我有一个名为logA.log
的日志文件和一个B.sh
文件。
在日志文件中有一些行,我想通过执行B.sh
在B中我写了
#!/bin/bash
variableString = tail -10f /home/appuser/logA.log
grep ERROR $variableString | wc -l
但输出为:
variableString:找不到命令
我知道“grep”行正在运行,但我无法访问logA in b.sh
。
如何将名为variableString
的变量定义为logA
答案 0 :(得分:2)
您的命令没问题,但您必须了解存储命令输出的方法:var=$(command)
。此外,您可能会获得多行,因此请引用return命令以保留格式。因此,您应该使用:
variableString="$(tail -10f /home/appuser/logA.log)"
grep ERROR "$variableString" | wc -l
当您收到错误时
variableString:找不到命令
这是因为在定义语法时,bash
解释必须使用variableString
参数执行= tail -10f /home/appuser/logA.log
命令。有关此问题的详细信息,请参阅Basic bash script variable declaration - command not found。
答案 1 :(得分:1)
tail -f
(“关注”)无法完成,因此它永远不会到达下一行。您可能需要tail -n 10
(-n
使其成为POSIX compatible)。总之,您应该使用:
variableString=$(tail -10 /home/appuser/logA.log)