0

我的操作系统平台是:SunOS machinehull01 5.10 Generic_148888-05 sun4v sparc SUNW,Sun-Fire-T200

我编写了一个从文件运行的 shell 脚本

文件名:test.sh

#!/bin/sh
VARNAME=$grep '-l' TestWord /home/hull/xml/text/*.txt
echo "Found $VARNAME"

当我在控制台中运行上述命令时,我得到了正确的输出而没有错误,但是当我运行sh test.sh./test.sh时,我得到了以下错误

test.sh: -l: not found
Found

有人可以帮我吗?

4

2 回答 2

3

您正在搜索所谓的“命令替换”:

VARNAME=$(grep -l TestWord /home/hull/xml/text/*.txt)
echo "Found $VARNAME"

它将在子shell中执行命令$(和右括号之间的命令,并将)命令的输出返回到VARNAME.

于 2014-10-27T08:53:01.640 回答
0

知道了。

#!/bin/sh
VARNAME=`grep -l TestWord /home/hull/xml/text/*.txt`
echo "Found $VARNAME"

我不得不把那些(`)放在那里。

于 2014-10-27T10:11:14.443 回答