我正在尝试编写一个对音乐文件进行一些处理的 bash 脚本。这是到目前为止的脚本:
#!/bin/bash
SAVEIFS=$IFS
IFS=printf"\n\0"
find `pwd` -iname "*.mp3" -o -iname "*.flac" | while read f
do
echo "$f"
$arr=($(f))
exiftool "${arr[@]}"
done
IFS=$SAVEIFS
这失败了:
[johnd:/tmp/tunes] 2 $ ./test.sh
./test.sh: line 9: syntax error near unexpected token `$(f)'
./test.sh: line 9: ` $arr=($(f))'
[johnd:/tmp/tunes] 2 $
我尝试了许多不同的咒语,但都没有奏效。底线是我正在尝试调用命令exiftool
,并且该命令的参数之一是可能包含空格的文件名。上面我试图将文件名分配$f
给一个数组并将该数组传递给exiftool
,但是我在构建数组时遇到了麻烦。
直接的问题是,我如何构造这个数组?但更深层次的问题是,如何从 bash 脚本中调用带有可能包含空格的参数的外部命令?