循环遍历路径中的文件(带空格)

时间:2017-07-25 11:28:48

标签: bash scripting

我想将路径名传递给脚本,但我的路径有空格(例如/ Users / netto / iTunes \ Media / Music /)。 我已经尝试将实际路径直接放在for循环上,并且我能够获取所有文件。不幸的是,我无法将其作为变量传递。我试过双引号和单引号。这就是我目前的

$PATH=$1
for f in $PATH; do
   echo "Processing file $f " 
done

请告诉我如何操作。 提前谢谢。

1 个答案:

答案 0 :(得分:2)

变量中的空格在命令级别进行扩展,因此要解决此问题,您可以在“$ 1”周围加上引号(以便正确转义空格)或使用bash数组。

这是两个应该起作用的例子:

 #!/bin/bash
DIR="$1"
for f in "$DIR"/* 
do
  echo "Processing file $f " 
done

或使用bash数组:

#!/bin/bash
FILES=("$1"*)
for f in "${FILES[@]}"
do
  echo "Processing file $f " 
done