bashメモ
MyDNS.JPのIPv4更新用スクリプトをシェルスクリプトで作ってみた(MyDNS.jp-v4-Update.sh)ので、そのときの知見をメモ
変数代入
スペースを開けずに代入する
hoge="hoge"
NG例
以下のようにスペースを開けて代入するとnot foundとかコマンドが見つかりませんとか怒られる
hoge = "hoge"
文字列長取得
数値として取れる模様
${#hoge}
文字列変数展開
頭にドルつける
echo $hoge
文字列結合
echo "もじ${hoge}もじ"
コマンド展開
その1
バッククォートで囲む
hoge=`echo "hoge"`
その2
$()で囲む。ネストするときに書きやすい
hoge=$(echo "hoge")
1と2を繋げたネストのサンプル
例えばip_resの内容は"127.0.0.1 200"の様になる
ip_res=`echo "\""$(curl inet-ip.info/ip -s -m 10 -w ' %{http_code}')"\""`
日付取得
hoge_date=`date "+%Y/%m/%d %H:%M:%S"`
if文
hoge="hoge"if[${hoge}="hoge"];then# ほにゃらら elif[ 1 -eq 1 ];then# 数値と文字列で比較演算子が違う?else# ふにゃららfi関数
明示的に指定しない限りスコープの概念はないっぽい
fuga(){# ふがゃらら}
fuga
echoでエスケープシーケンス
-eオプションを付ける
echo -e "\n"