x264: 忽略 bash 脚本中的空选项
x264: ignore empty options in bash script
我使用 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 而是内联。
您可以在参数扩展中使用替代值:
mycommand ${myvar:+ "--$myvar"}
如果myvar=foo
,这将运行mycommand --foo
如果 myvar
未设置或为空,它将 运行 mycommand
没有标志。
我使用 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 而是内联。
您可以在参数扩展中使用替代值:
mycommand ${myvar:+ "--$myvar"}
如果myvar=foo
,这将运行mycommand --foo
如果 myvar
未设置或为空,它将 运行 mycommand
没有标志。