BASH-通过多种模式选择文件

3 bash filenames design-patterns zenity

我对zenity和bash相当陌生。我试图使文件选择窗口将只显示扩展名为.ogg,.aac和.wav的文件。我试过了,但是没有用。

option=`zenity --file-selection --file-filter=*.ogg | *.aac`
Run Code Online (Sandbox Code Playgroud)

对于一个扩展,它按预期工作:

option=`zenity --file-selection --file-filter=*.ogg`
Run Code Online (Sandbox Code Playgroud)

Zenity man提供信息:

--file-filter=NAME | PATTERN1 PATTERN2
Sets a filename filter
Run Code Online (Sandbox Code Playgroud)

我真的不明白我应该怎么使用它。有人可以告诉我一些例子吗?

小智 6

特殊的 bash 符号 | 和 * 需要转义(反斜杠)或引用(单引号或双引号),你已经成功了。使用单引号,参数按字面传递给 zenity。

如果您想要更多过滤器选择,请重复 --file-filter 选项 例如,您可能需要在文件选择窗口中使用两个过滤器“所有文件”和“音乐文件”:

zenity --file-selection --file-filter='Music files (ogg,wav,aac) | *.ogg *.wav *.aac' --file-filter='All files | *'
Run Code Online (Sandbox Code Playgroud)


小智 5

好的,我找到了解决方案,也许将来有人会使用它:

zenity --file-selection --file-filter=""*.ogg" "*.wav" "*.aac""
Run Code Online (Sandbox Code Playgroud)

  • 确实,这对将来很有帮助。谢谢! (2认同)
  • 这些报价大多是不必要的。只需使用`"*.ogg *.wav *.aac"`。 (2认同)