当 shell 脚本回显“*”时,为什么它会列出文件和目录?

发布于 2024-12-14 05:46:09 字数 155 浏览 0 评论 0原文

我编写了以下 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

清音悠歌 2024-12-21 05:46:09

因为$TEST周围缺少一些""

尝试回显“$TEST”

Because there are missing some "" around the $TEST.

Try echo "$TEST".

海拔太高太耀眼 2024-12-21 05:46:09

它会打印所有文件和文件夹,因为 shell(在您的情况下为 bash)会在将 * 传递给命令之前将其展开。

解决方案很简单:

#!/bin/bash
TEST="*";
echo "$TEST"

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:

#!/bin/bash
TEST="*";
echo "$TEST"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文