读取其值

时间:2016-09-19 18:45:31

标签: bash unix scripting escaping whitespace

我有一些路径存储在变量(变量名称 - >测试)

echo "${test}" 

结果:

/abc/pqr/filepath1
/abc/pqr/lmn/file path2
/abc/pqr/rst/filepath3

我想逃离"空间"第二个路径中的字符并获取每个路径的所有者,我使用以下命令:

stat -c '%U' ${test}   , works for 1st and 3rd path.

如何为第二条路径开展此工作?提前谢谢。

1 个答案:

答案 0 :(得分:1)

使用while构造获取每个文件名,每行一个:

while IFS= read -r f; do stat -c '%U' "$f"; done <<<"$test"

示例:

$ echo "$test"
/abc/pqr/filepath1
/abc/pqr/lmn/file path2
/abc/pqr/rst/filepath3

$ while IFS= read -r f; do echo "$f"; done <<<"$test"
/abc/pqr/filepath1
/abc/pqr/lmn/file path2
/abc/pqr/rst/filepath3