关于这个问题有很多问题,但我似乎无法做到这一点。
我有一个脚本,它为变量分配一个特定路径,并在其中添加一个带*的文件名。如果路径中有空格,我无法正确评估脚本。
假设变量设置为:
var="/path/with/a space/in/it/"*.jpg
如果我尝试类似
的话for i in $var
do
echo "$i"
done
该脚本根本找不到任何文件,只会吐出var的值,其中包含*,在空格处分成两个:
/path/with/a
space/in/it/"*.jpg
那么有没有办法让它将变量作为正确的路径处理?
This提供了一些帮助,但它并不像我想的那样有效。
答案 0 :(得分:3)
由于这是bash,您可以将var
作为一个数组(参见this Unix.SE question on expanding globs):
shopt -s nullglob
var=("/path/with/a space/in/it/"*.jpg)
for i in "${var[@]}"
do
echo "$i"
done