【发布时间】:2011-11-09 10:06:01
【问题描述】:
我编写了以下shell脚本来在屏幕上打印“*”,但是当我执行脚本时,它会列出脚本所在当前目录中的所有文件和目录。谁能告诉我为什么脚本会列出当前目录中的所有文件和目录?
#!/bin/bash
TEST="*";
echo $TEST
【问题讨论】:
我编写了以下shell脚本来在屏幕上打印“*”,但是当我执行脚本时,它会列出脚本所在当前目录中的所有文件和目录。谁能告诉我为什么脚本会列出当前目录中的所有文件和目录?
#!/bin/bash
TEST="*";
echo $TEST
【问题讨论】:
因为$TEST周围缺少一些""。
试试echo "$TEST"。
【讨论】:
它会打印所有文件和文件夹,因为外壳程序(在您的情况下为 bash)会在将 * 传递给命令之前对其进行扩展。
解决方法很简单:
#!/bin/bash
TEST="*";
echo "$TEST"
【讨论】: