我想将路径名传递给脚本,但我的路径有空格(例如/ Users / netto / iTunes \ Media / Music /)。 我已经尝试将实际路径直接放在for循环上,并且我能够获取所有文件。不幸的是,我无法将其作为变量传递。我试过双引号和单引号。这就是我目前的
$PATH=$1
for f in $PATH; do
echo "Processing file $f "
done
请告诉我如何操作。 提前谢谢。
答案 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