2

通常,示例显示如下用法:

for i in $(ls); do echo ${i}; done

但是如果有一个名为“screw”的文件(或目录),那么上面的行就会给出错误的结果。

怎么解决?

4

3 回答 3

7

不,请不要使用/parsels的输出。像这样使用它:

for i in *; do echo "${i}"; done

或者,您可以使用printf(感谢@ruakh):

printf '%s\n' *
于 2013-11-13T08:16:31.033 回答
0
IFS="$(echo -e "\b\r")";
for f in $(ls); do
    echo "$f";
done

如果您被迫坚持解析 ls 输出(您不应该这样做)

于 2013-11-13T10:58:20.150 回答
0

您始终可以将 find 与 print 一起使用

find ./ -print | xargs echo
于 2016-10-23T22:02:42.397 回答