这是关于参数扩展的一个非常基本的问题。举例来说,这里有两种形式的ffmpeg命令的音频编解码器参数:
表格1:
ffmpeg ... -acodec copy ...
表格2:
ffmpeg ... -an ...
我想将参数和(表单1)的值表示为一个变量或两个场景中可用的变量。
这适用于表单1:
param1="-acodec"
param2="copy"
ffmpeg ... "$param1" "$param2" ...
但这不起作用:
param="-acodec copy"
ffmpeg ... "$param" ...
这也不起作用:
param1="-acodec"
param2=" copy"
ffmpeg ... "$param1$param2"
相反,这适用于表单2:
param="-an"
ffmpeg ... "$param" ...
这有效:
param1="-an"
param2=""
ffmpeg ... "$param1$param2"
但由于额外的空格特征,这显然不起作用:
param1="-an"
param2=""
ffmpeg ... "$param1" "$param2" ...
是否有一个表达式适用于两种形式的参数?
答案 0 :(得分:1)
使用数组。
# Pick one.
# param=(-acodec copy)
# param=(-an)
ffmpeg ... "${param[@]}" ...