我试图在脚本中使用 grep 函数,但它不起作用,尽管它在终端中可以工作

我试图在脚本中使用 grep 函数,但它不起作用,尽管它在终端中可以工作

我想计算文件中 G8LE 单词的数量,因此我打开了一个终端并使用:

grep -o -i G8LE C60_TAPC_GRM_box.gro | wc -l

并且它成功了。

我尝试编写一个由多个步骤组成的脚本,这是我的第一步。因此,我创建了一个 .sh 文件,并编写了相同的命令,但使用

va1=$(grep -o -i G8LE C60_TAPC_GRM_box.gro | wc -l)

然后我尝试使用 bash trial5.sh 运行该文件,但什么也没发生,也没有用。请告诉我哪里出了问题。

谢谢

答案1

该变量va1需要付诸行动。

变量va1尽管它包含命令的输出(这称为命令替换,实际上 shell 本身并不将其识别为命令,也不会将其作为命令执行。它需要由脚本中的命令调用。

尝试echo "$va1"在脚本的第二行添加如下内容:

va1=$(grep -o -i G8LE C60_TAPC_GRM_box.gro | wc -l)


echo "$va1"

您可能还需要添加C60_TAPC_GRM_box.gro文件的完整路径,如下所示:

va1=$(grep -o -i G8LE /home/YourUserName/C60_TAPC_GRM_box.gro | wc -l)

祝你好运

相关内容