当我阅读[command]某些行(包括字符'*'
)时,似乎'*'
将被视为通配符。是否存在某些解决方案'*'
只是'*'
,请!
答案 0 :(得分:1)
这取决于你如何使用变量:如果引用它,文件名扩展将不会发生。例如:
$ ls
f1 f2 f3
$ read line
*
$ echo "$line"
*
$ echo $line
f1 f2 f3
答案 1 :(得分:0)
您可以使用转义字符\*
来转义它。这意味着*
将是文字*
,不匹配一个或多个字符作为glob模式。
答案 2 :(得分:0)
如果您不希望将任何特殊文件名字符用作通配符,请在阅读之前在脚本中输入以下内容。
set -o noglob
这会阻止*?和[]来自具有特殊意义并将其视为普通人物。
以下示例演示了这一点
touch 1 2 3
echo "With wild card expansion"
echo *
echo "Without wild card expansion"
set -o noglob
echo *
And produces the following results With wild card expansion 1 2 3 Without wild card expansion *