引号内的通配符

引号内的通配符

这将是一件简单的事情,但在我的记忆中,当 shell 脚本编写时,使用双引号将允许扩展通配符和变量。

但在下面的代码中:

#!/bin/sh

echo *.sh
echo "*.sh"
echo '*.sh'

echo $LANG
echo "$LANG"
echo '$LANG'

我得到这个结果:

bob.sh redeployJboss.sh
*.sh
*.sh
en_US.utf8
en_US.utf8
$LANG

那么单引号可以防止通配符和变量扩展,但双引号仅允许变量扩展而不允许通配符?

我可以使用任何引用模式吗?

答案1

你是对的:通配符在单引号或双引号中都不起作用。但是,您可以使用双引号字符串插入通配符:

$ echo "你好世界" *.sh "再见世界"
你好世界[文件列表]再见世界

相关内容