bash

A collection of 4 posts
Interpret argument with bash
bash

Interpret argument with bash

bashシェルスクリプトで引数を解釈し処理するスクリプトを書きたい時に必要になるコマンドや特殊変数、関数をまとめました。例もあるよ。 ※ $@について追記しました!感謝! https://twitter.com/masutaka/status/796703261185216512 $* 順番に見てく。まず$*。 すべての引数が設定される特殊変数。 こんなスクリプトがあったとして…。 #!/bin/sh echo $* こうなる。 $ ./argument.sh a bb ccc a bb ccc $@ すべての引数が設定される特殊変数。え!?@*と同じじゃん! 違いは、「$@はスペース区切りで設定される」のに対し、「@*は環境変数IFS区切りで設定される」こと!知らなかった...。 IFSが空の場合は上にもあるようにスペース区切り。 $ ./argument.sh a bb ccc a bb ccc 環境変数IFSを設定すると...。 #!/bin/sh IFS='区切りだよ'
4 min read
Enjoy mackerel metadata
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 "{\"environment\": \"production\"}" https://mackerel.io/api/v0/hosts/$MACKEREL_HOSTID/metadata/environment {"success":true} ホストメタデータの取得 うむ。 $ curl -s -X GET -H "X-Api-Key: $
2 min read
complete:13: command not found: compdef
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.incを見るとbashcompinitをロードしてるしcompleteコマンドを使っている その辺が原因なのかな…。zsh用にcompletion.zsh.
1 min read
bash

What is bash option `-x`

※ 2014/12/17追記 man bashを見ると ... -x file True if file exists and is executable. ... となっているが実際に$ bash -x script.shとすると実行内容がエコーされる なんでだろうと思ったら「CONDITIONAL EXPRESSIONS(条件式)」のコーナーに書いてあった 実行内容がエコーされる-xオプションは別にありそう CONDITIONAL EXPRESSIONS Conditional expressions are used by the [[ compound command and the test and [ builtin commands to test file attributes and perform string and arithmetic
1 min read