我的操作系统平台是这样的: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
有人可以帮我解决这个问题吗?
答案 0 :(得分:3)
您正在搜索所谓的“命令替换”:
VARNAME=$(grep -l TestWord /home/hull/xml/text/*.txt)
echo "Found $VARNAME"
它将在子shell中执行$(
和右括号)
之间的命令,并将命令的输出返回到VARNAME
。
答案 1 :(得分:0)
知道了。
#!/bin/sh
VARNAME=`grep -l TestWord /home/hull/xml/text/*.txt`
echo "Found $VARNAME"
我必须把那些(`)放在那里。