我想這樣執行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