我使用带有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而是内联。
答案 0 :(得分:1)
您可以在参数扩展中使用替代值:
mycommand ${myvar:+ "--$myvar"}
如果myvar=foo
,则会运行mycommand --foo
如果myvar
未设置或为空,它将运行mycommand
而没有标记。