x264:忽略bash脚本中的空选项

时间:2016-02-24 18:32:58

标签: bash variables x264

我使用带有x264的脚本进行一些视频编码。大多数选项都遵循模式

x264 --option0 $value0 --option1 $value1 -o output.file input.file

脚本从文本文件中读取值。文本文件包含crf=18.3等键值。不幸的是,这不适用于mb-tree,因为该选项没有$ value,默认情况下设置,可以使用--no-mbtree关闭。

如果在文本文件中设置了mbtree=no-mbtree,一切正常。但是,如果我选择使用mbtree进行编码,--$variable-for-mb-tree-or-no-mb-tree仍然存在,但是未设置或为空,x264会抛出错误。

如何告诉bash / x264忽略未设置或空的变量?我想避免使用if ... then ... else而是内联。

1 个答案:

答案 0 :(得分:1)

您可以在参数扩展中使用替代值:

mycommand ${myvar:+ "--$myvar"}

如果myvar=foo,则会运行mycommand --foo

如果myvar未设置或为空,它将运行mycommand而没有标记。