繁体   English   中英

.sh脚本不会让我循环浏览文件

[英].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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM