我想这样执行shell命令单独的参数(包括引号):庆典:在功能上构建的命令行的部分,将被解释为
convert input.png -pointsize 40 -font "$HOME/Library/Fonts/Droid Sans.ttf" \
-background black -fill red -stroke blue label:"Foo Bar" \
-gravity center -composite output.png
但它是一个脚本的一部分,有些内容是动态,我从一个函数中获得。基本上,我想是这样的:
function GetTextCommands {
echo "-pointsize $2 -font \"$HOME/Library/Fonts/$1.ttf\" \
-background black -fill red -stroke blue label:\"$3\" \
-gravity center -composite"
}
bla=$(GetTextCommands "Droid Sans" 40 "Foo Bar")
convert input.png $bla output.png
不过,我不断收到这种报价相关的麻烦。要么它不承认Sans.ttf
部分,认为这是一个不同的论点。或者,如果我在convert
命令的$bla
变量周围加上引号,它会将整个事件解释为一个参数(当然,这当然是无效的)。
请注意,如果我在convert
命令之前放置echo
以预览我的命令行的实际外观,它看起来与我打算的方式完全相同。但是我意识到当整条线路被回显时,一些引用可能会消失。
这是怎么回事?
谢谢,用这种方式使用数组非常整齐! – RocketNuts