我的操作系统平台是:SunOS machinehull01 5.10 Generic_14888-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
有人能帮我吗?
您正在搜索所谓的"命令替换":
VARNAME=$(grep -l TestWord /home/hull/xml/text/*.txt)
echo "Found $VARNAME"
它将在子shell中的$(
和右括号)
之间执行命令,并将命令的输出返回到VARNAME
中。
明白了。
#!/bin/sh
VARNAME=`grep -l TestWord /home/hull/xml/text/*.txt`
echo "Found $VARNAME"
我不得不把那些(`)放在那里。