这将是一件简单的事情,但在我的记忆中,当 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 "再见世界" 你好世界[文件列表]再见世界