bash

Interpret argument with bash

bashシェルスクリプトで引数を解釈し処理するスクリプトを書きたい時に必要になるコマンドや特殊変数、関数をまとめました。例もあるよ。 ※ $@について追記しました!感謝! https://twitter.com/masutaka/status/796703261185216512 $* 順番に見てく。まず$*。 すべての引数が設定される特殊変数。 こんなスクリプトがあったとして…。 #!/bin/sh echo $* こうなる。 $ ./argument.sh a bb ccc a bb ccc $@ すべての引数が設定される特殊変数。え!?@*と同じじゃん! 違いは、「$@はスペース区切りで設定される」のに対し、

mackerel

Enjoy mackerel metadata

先日のmackerelミートアップでメタデータなる新機能が発表されました。 メタデータ - Mackerel API ドキュメント (v0) 後日談として、この機能がどんな感じか試してみます。まずは一通りメタデータの入出力を試してから、メタデータと何かしらを連携させて遊んでみるところまでやってみます。 ホストメタデータの登録・更新 APIキーとホストIDは面倒なので環境変数に入れています。 環境の情報をメタデータで持たせてみます。 $ curl -X PUT -H "X-Api-Key: $MACKEREL_APIKEY" -H "Content-Type:application/json" -d "{\"

mac

complete:13: command not found: compdef

いつのまにかシェルのセッション開くたびcomplete:13: command not found: compdefが出て死にそうだった 原因 Google Cloud SDKインストール時にzshの設定ファイルに追記されるsource '$HOME/google-cloud-sdk/completion.zsh.inc'が原因だった($HOMEのところはハードコードされてると思う) これはgcloudコマンドを補完するために必要っぽい よくわからないけど、これが原因でzsh-completionsがうまく動かなくなっていた というかcomplete:13: command not found: compdefって出てるけど、completeコマンド自体、bashのビルトインコマンドでzshには含まれてない にもかかわらず$HOME/google-cloud-sdk/completion.zsh.