1つのボタンから複数の色のボタンを作る方法

 

シェルスクリプトで1つのボタンから複数の色のボタンを作る

sample.png ボタンから grnbtn.gif、orgbtn.gif、pnkbtn.gif、redbtn.gif 4色のボタンをシェルスクリプトで一発作成します。
 

#!/bin/bash

iro=(\#fc9db8 \#ffa500 \#00cc00 \#f04949)
namae=('pnk' 'org' 'grn' 'red')

for ((i=0;i<4;i++)
do
convert -fill ${iro[$i]} -opaque '#49bdf0' sample.png ${namae[$i]}btn.gif
done

 



 

Syntax error: “(” unexpected

作成したシェルスクリプトを実行しようとしたら、エラーが発生したのでグーグルで調べてみました。

$ ./chgcolor.sh

Syntax error: “(” unexpected
 
$ bash ./chgcolor.sh

で動作。

ls コマンドで /bin/sh を確認してみたら

$ ls -l /bin/sh

lrwxrwxrwx 1 root root 4 11月 23 2018 /bin/sh -> dash

Ubuntu の sh は dash

dashシェルになっているので、環境変数の SHELL を /bin/sh から /bin/bash に書き換えるか
/bin/sh のヒモづけを bash に切り替えて使ういます。# dpkg-reconfigure dash で NO を選択します。

→ Ubuntu Wiki: DashAsBinSh

dashシェル

Dash は、 POSIX互換の /bin/sh (sh,Boume shell)の実装。 Bash互換ではないので注意すること。

Dashの特徴

  • 実行速度が速い。
     bashの4倍
  • 非常に軽量。
     bash 6.5Mb に比べ dash は、134.1Kb
  • POSIX互換 ashと共通。
     シェルスクリプトがPOSIX互換の文法を正しく使用しているかのチェックのためのテスト環境に使われる。