我在运行下面的脚本时遇到了麻烦(在 Win 7 上的 Cygwin 中请注意)。让我们称之为“myscript.sh”当我运行它时,以下是我输入的内容:
年月:2011-03
日模式:2{5,6,7}
日志文件
名:错误*
查询:WARN
#! /bin/bash
yearmonth=''
daypattern=''
logfilename=''
sPath=''
q=''
echo -n "yearmonth: "
read yearmonth
echo -n "daypattern: "
read daypattern
echo -n "logfilename: "
read logfilename
echo -n "query: "
read q
cat "$yearmonth/$daypattern/$logfilename" | grep --color $q
我得到的输出是:
cat: /2011-03/2{5,6,7}/error* 不存在这样的文件目录。
但是,如果我输入 daypattern=25 或 daypattern=26 等,脚本将起作用。此外,当然,如果我在 shell 本身中键入命令,通配符会按预期扩展。但这不是我想要的。我希望能够提示用户根据需要输入表达式,然后在脚本中执行这些命令。
有什么想法怎么可能?
非常感谢您的帮助。