我试图在/ var / www /上打印我的文件,但是由于某种原因,我收到此错误:“ temp.sh:第3行:FILES:未找到命令”
代码:
#loop through files FILES = /var/www/* for f in $FILES do echo "processing $f" done
我正在通过主目录通过命令行运行该命令,例如sh script.sh(如果重要的话)
要在sh中设置变量,=
字符前后不能有空格。将您的代码更改为
FILES=/var/www/*
但是,如果其中任何文件/var/www
的名称中都有空格,则会出现问题,因为它们将在您的for
行中替换变量后被拆分。因此,如果有类似的文件name with space
,您将获得
processing /var/www/name
processing with
processing space
您可以通过将模式直接放在for
命令中来避免这种情况,因为路径名扩展是在单词拆分后发生的:
for f in /var/www/*; do
echo "processing $f"
done
你会得到 processing /var/www/name with space
或者,您可以在目录中使用变量-您只需要确保通配符在for
一行中即可以正确的顺序进行扩展/拆分:
FILE_DIR=/var/www
for f in $FILE_DIR/*; do
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句