将“find”的结果传递给zenity

将“find”的结果传递给zenity

以下脚本的结果:

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[@]}"

相关内容