我有一个简单的bash脚本,simple.sh如下:为什么我无法将目录作为参数传递给bash中的for循环?
#/usr/local/bin/bash
for i in $1
do
echo The current file is $i
done
当我用下面的参数运行它:
./simple.sh /home/test/*
它只会打印并列出的第一个文件位于在目录中。
但是,如果我改变我的simple.sh到:
#/usr/local/bin/bash
DIR=/home/test/*
for i in $DIR
do
echo The current file is $i
done
,将正确的目录中打印出的文件。有人可以帮助解释为什么传递的参数不会显示相同的结果吗?
这应该是'“$ @”',因此它甚至适用于名称中带有空格的文件。 – Jens
是的,当然这应该像“$ @”一样...... – Oni1
并且使用'“$ i”',空白空间也保留在消息中。这是关于细节的一切:-) – Jens