update.~と*を展開する場合はクオートしないクオートされた文字列の中にある~はそのまま文字として扱われる。扱いは*と同じようにみえる。"*.txt"*.txt$*と$@の違い基本的には同じ動きをするが、クオートの中で使うと文字区切りの扱いが変わる。doneスペース($IFS)を含む場合の例。$$a1bashはそのまま実行すると、$$が先に解決されてPIDになってしまう。$$a1136a正しくはこちら。${!a}[と[[とtestシェルで分岐をする場合によく使うこれ。[はtestと同じコマンドなのでどちらを使ってもいい。1fiだけどこの2つはシェルとは別のコマンドなので、空白文字や空文字の場合に注意しないといけなくてめんどくさい。okbashを使うのであれば、今は常に[[を使うのが良いと思う。]]正規表現でマッチ[[で=~演算子を使うと正規表現が使える。matchfiここでは、安易に正規表現をクオートしてはいけない。クオートすると、正規表現で特別な扱いされる文字が全てバックスラッシュでエスケープされる。シングルクオートとダブルクオートでどちらも同じ。正規表現の途中でスペース等を含ませたい場合は、その部分だけクオートするとよい。-xしておくとエスケープされた後の正規表現を見ることができる。ifと&&と||ifの代わりに、&&と||が使える。エラー処理はこちらを使った方が読みやすい。$aすると、先頭の要素しか対象にならない。配列に特定の要素が存在するか専用の機能は無いが、[[コマンドの=~演算子が使える。foundfi=~は正規表現でマッチさせる演算子なので、スペースで要素の区切りを表現してあげなければならない。1))のように書くと外部コマンドなく計算ができる。1))2数字の前に基数を書ける。8#10))23((expr))だけの場合は評価をするだけなので、条件式に使うと便利。他に以下の擬似シグナルが存在し、それらにハンドラを割り当てられる。コマンド実行のたびに都度実行される一時ファイルを必ず削除したい場合はEXITに登録しておくと良い。変数展開bashは通常のshと比べてとても多くの展開式が使える。変数の少し変わった扱い方。Sierraはまだ3系なので利用箇所には注意。全ての文字で大文字小文字を反転オプションを扱う色々方法はあるけどgetoptsがいちばん面倒がなくて良いと思う。以下のコードでは、-fに引数がない・不明なオプションが与えられた時に、getoptsがエラーを出してくれる。1))だけど不明なオプションでもエラーとしたくない場合は少しめんどくさい。getopts最初の引数先頭に:をつけるとエラーにならない代わりに、特殊なオプション文字として:または?のどちらかが入っている。引数が必要なオプションだけど無かったこのように使う。1))不明なオプションだった場合、具体的にどの文字が使われたのか調べる方法は特に用意されてなさそうだったので、上記のように自分で計算する。先頭のアレシバン(shebang)というらしい。bashbashを使う場合、環境によってパスが違うかもしれないのでenvでラップするのをよく見かける。upLoginユーザーは見つかりませんでした。