当 shell 脚本回显“*”时,为什么它会列出文件和目录?
我编写了以下 shell 脚本来在屏幕上打印“*”,但是当我执行该脚本时,它会列出脚本所在的当前目录中的所有文件和目录。有人能告诉我为什么脚本列出了当前目录中的所有文件和目录吗?
#!/bin/bash
TEST="*";
echo $TEST
I have written the following shell script to print "*" on the screen but when I execute the script, it lists all the files and directories in the current directory in which script is located. Can someone tell me why the script lists all the files and directories in the current directory?
#!/bin/bash
TEST="*";
echo $TEST
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
因为
$TEST
周围缺少一些""
。尝试
回显“$TEST”
。Because there are missing some
""
around the$TEST
.Try
echo "$TEST"
.它会打印所有文件和文件夹,因为 shell(在您的情况下为 bash)会在将 * 传递给命令之前将其展开。
解决方案很简单:
It prints all the files and folders because the shell, bash in your case, expands the * before passing it to the command.
The solution is simple: