シェルスクリプトで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 を選択します。
dashシェル
Dash は、 POSIX互換の /bin/sh (sh,Boume shell)の実装。 Bash互換ではないので注意すること。
Dashの特徴
- 実行速度が速い。
bashの4倍 - 非常に軽量。
bash 6.5Mb に比べ dash は、134.1Kb - POSIX互換 ashと共通。
シェルスクリプトがPOSIX互換の文法を正しく使用しているかのチェックのためのテスト環境に使われる。