仕事でちょっと楽するために書いたんですけど、事前知識が全くないせいでヒドい目に・・。
ちょっとずつでもできるようになるべく、覚えたことのメモ!
引数の扱い
コマンドに渡した引数は、
$1 # 1つ目の引数 $2 # 2つ目の引数 # $n nつ目の奇数
というように $n で取得できる。
変数の扱い
hoge=1
echo ${hoge}
- いきなり宣言できる
- aliasとかと一緒で=の左右は開けちゃダメ
- 参照するときは${…}のようにする
ファイルパス関連
fullpath=/~/git/hoge/index.html
# フルパスからパス、ファイル名、拡張子を取得
path=${fullpath%/*} # ~/git/hoge
name=${fullpath##*/} # index.html
ext=${fullpath##*.} # htmlこれは便利だわ・・・。
終了ステータス
普段何気なく実行してるコマンドには終了ステータスというものがあって、
- 成功なら0
- そうでなければ0以外
を返すようになってるそうな。
mkdir hoge && cd hoge mkdir foo && mkdir poo && cd boo # ↑ boo/ なんてものはないので、 foo/ poo/ だけ作成して終了
みたいに出来るのは、このステータスでもって実行するかの判断をしている、と。
# … # … exit 0
スクリプトの最後はコレで終わるように。
IF文
ext="css"
if [ "${ext}" = "css" ]; then
echo "Css!"
elif [ "${ext}" = "js" ]; then
echo "JavaScript!"
else
echo "What is this?!"
fi
- "[" の前後にスペースあけないとダメ
- ";" が変な位置にあるって思っちゃうけどあってる
- else ifじゃなくてelif
- シングルクォートではなくダブルクオートのほうが無難ぽい
ファイルを引数にとってループ
justShow.sh hoge fuga piyo
みたいに引数を順に処理したい場合
# $@ で引数が全部取れる
for arg in $@
do
echo ${arg}
doneうーん、JavaScriptしか知らないと中々文法にも慣れないですね・・。
ここらはもっとちゃんと時間とって勉強しようと思ってます。