先日、ghコマンドのエクステンションとして、gh graphというものを作りました。 こちらにオプションで表示を出し分ける機能を追加したのですが、シェルスクリプトでの引数解析に手こずったので考え方を残しておきます。 以下の記事がたいへん参考になりました。感謝! サンプルスクリプト 本記事の説明をざっくりとまとめた基本的なスクリプトを作成しました。以下のGistに載せています。 コピーして実行してみてください。 基本戦略 whileループの中でcaseを使い、スクリプトの引数(optionもargumentも含む)を一つずつ処理します。 ループするごとにshiftで引数を取り除いていき、0個になるまで続けます。 while (( $# > 0 )) do case $1 in -o) echo "option o" ;; -*) echo "invalid option" exit 1 ;;
ゲンゾウ用ポストイット シェル / Bash / Linux / Kubernetes / Docker / Git / クラウドのtipsを発信。 はじめに最近、Bash で特定の文字 ( あるいは文字列 ) で連結されている文字列を分割して配列に代入したい場合の方法について聞かれることがあったのでまとめました。 検証環境$ uname -moi x86_64 x86_64 GNU/Linux $ bash -version | head -n 1 GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)大きく 2 つのケースを考えてみる文字列の分割 ( split ) について、大きく 2 つのケースを考えてみます。 単一の文字で分割複数の文字 ( 文字列 ) で分割単一の文字で分割する方法1.変数参照時に置換するBas
対象 : このガイドは、初心者向けでも経験者向きでもある。幅広く(書いてあることは全て重要)、かつ明確で(多くのケースに対して具体的な例を付ける)、そして簡潔(他の場所で見つけられるような重要でないことや脱線したことは省く)であることをゴールにしている。各項目は、多くの場面において必須であるか、他の方法に比べて劇的に時間を節約してくれるだろう。 OS X用のものを除き、Linux向けの内容となっており、その多くは各種LinuxおよびMacOS(あるいはCygwin)でも使えるだろう。 インタラクティブなBashを使うことを想定しているが、多くの項目は他のシェルやBashのスクリプトでも使えるだろう。 (このリポジトリへ)組み込むメリットがあるのであれば、標準Unixコマンドやパッケージインストールコマンドも含める。 注意 : 1ページ内に収めるために、内容には暗黙的に書かれていることがある
Update (2020-03-29) When I originally wrote this blog post, my intent was to describe how things worked on a typical system at the time. Unfortunately, the operation of bash startup scripts is dependent on patches added by OS distributions, compile-time options and if bash thinks it was invoked by sshd or rshd. I have no desire to add complexity to this post, so instead please read this as a rough
bashスクリプトの最初の2行はこれにしようと。 #!/usr/env bash set -euo pipefail コマンドが落ちたら止める、unsetな変数に出会ったら止める、pipe連結した任意のコマンドが落ちたらそのe… https://t.co/lpTz8HoEWj
ここ最近、沢山シェルスクリプトを書くようになりました。 元々あまりシェルスクリプトを書いたこと無かったので、色々と勉強しつつ書いてるのですが、 他のプログラミング言語とはちょっと違って独特なクセというか、発見の度におぉー!ってなることが沢山あって楽しいです。 そんなわけで、最近学んだり参考にした中で特に感動したシェルの上手い書き方をまとめてみます。 きっとまだ知らないこととかもっと上手くやる方法なんかが沢山見つかりそうなので、 もっといいやり方あるよ!って方はコメントください 何もしない : (コロン)コマンド シェルを書いていた時に非常に欲しかったコマンドがこれ!何もしない! : というコマンド(?)を利用すると、何もせずに終了ステータス0(つまり正常終了)を返します。 これが様々な事に使える万能コマンドで、これによって面倒なエラー処理を簡潔にできたり、 入力や出力のリダイレクト元/先と
shocco is a quick-and-dirty, literate-programming-style documentation generator written for and in POSIX shell. It borrows liberally from Docco, the original Q&D literate-programming-style doc generator. shocco(1) reads shell scripts and produces annotated source documentation in HTML format. Comments are formatted with Markdown and presented alongside syntax highlighted code so as to give an anno
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く