以下脚本的结果:
results=$(find -iname "*.mp4")
echo $results;
是这样的:
file1 file2 file3
如何将 find 命令的结果传递给变量,如在终端中运行以下命令时所示:
find -iname "*.mp4"
打印:
file1
file2
file3
答案1
而不是echo $results
做做echo "$results"
。
更新:
两者之间的区别在于,第一种情况echo
接收许多参数,而第二种情况仅接收一个参数。这是因为变量替换发生在之前参数解析。
答案2
试试这个,在 zenity 列表上的一个例子,它从 读取结果find
,并生成一个数组,然后传递给 zenity:
#!/bin/bash
List=()
while IFS= read -d $'\0' -r file ; do
List=("${List[@]}" "$file")
done < <(find . -iname '*.mp4' -print0)
zenity --list --column "Item" "${List[@]}"