[英].sh script will not let me loop through files
我试图在/ 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
这样的文件, 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.