コマンドを変数として保存し、bashでランダムに実行する方法は?
command1="
convert -size 2000x1000 xc:none -gravity center \
-stroke yellow -pointsize 50 -font Courier-BoldOblique -strokewidth 3 -annotate +100+100 "${caption}" \
-blur 0x25 -level 0%,50% \
-fill white -stroke none -annotate +100+100 "${caption}" \
in.jpeg +swap -gravity center -geometry +0-3 \
-composite out.jpeg
"
command2="
convert -size 2000x1000 xc:none -gravity center \
-fill white -pointsize 50 -stroke none -annotate +100+100 "${caption}" -channel alpha -evaluate multiply 0.35 -trim +repage \
in.jpeg +swap -gravity center -geometry +0-3 \
-composite out.jpeg
"
私は何を試しましたか?
COMMANDS=("command1" "command2")
$(eval $(shuf -n1 -e "${COMMANDS[@]}"))
必要な出力は、2つの変換コマンドのいずれかをランダムに実行することです。必要な結果を得るにはどうすればいいですか?何が間違っていますか?
以下からヒントを得ました。
助けてくれてありがとう!
ベストアンサー1
機能を使用してください。
command1(){
convert -size 2000x1000 xc:none -gravity center \
-stroke yellow -pointsize 50 -font Courier-BoldOblique -strokewidth 3 -annotate +100+100 "${caption}" \
-blur 0x25 -level 0%,50% \
-fill white -stroke none -annotate +100+100 "${caption}" \
in.jpeg +swap -gravity center -geometry +0-3 \
-composite out.jpeg
}
command2() {
convert -size 2000x1000 xc:none -gravity center \
-fill white -pointsize 50 -stroke none -annotate +100+100 "${caption}" -channel alpha -evaluate multiply 0.35 -trim +repage \
in.jpeg +swap -gravity center -geometry +0-3 \
-composite out.jpeg
}
理由を調べるコマンドを実行しようとすると変数が失敗する理由