タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

shellに関するgonsuke777のブックマーク (4)

  • シェルスクリプトを書くときにいつもやるやつを調べた

    bash のシェルスクリプトを書くときに、いつも脳死で以下をやっている。(同僚が整備してくれたものをコピペしている) エディタなり CI で shellcheck をまわす set -euxo pipefail と冒頭に書く こんな感じ #!/bin/bash set -euxo pipefail いつまでもコピペではさすがにアレなので、意味を調べたメモ。 shellcheck koalaman/shellcheck: ShellCheck, a static analysis tool for shell scripts イケてない書き方に警告を出してくれる それぞれの警告にはエラーコード割り振られていてとても便利 エラーコードごとに正誤例、解説が書かれているのでわかりやすい SC1000 の例 CI もそうだし、エディタのプラグインも充実 しているのでとりあえず入れておくと良い set

    シェルスクリプトを書くときにいつもやるやつを調べた
  • シェルスクリプトを高級言語のような書き味に近づける Tips 集 | 創作メモ帳

    Bash は言わずと知れた歴史あるコマンド言語です。テキストにコマンドの羅列を記述するだけで、手軽にシェルスクリプトとして実行することができます。 シェルスクリプトの実体はシェルコマンドの羅列に過ぎませんが、手続き型プログラミング言語にあるような制御構文も備えています。変数や条件分岐、ループ、関数などです。これらを使えばシェルスクリプトでプログラミングも可能です。 もちろん、現代の一般的なプログラミング言語と比べると機能は限られます。他の言語には見られないシェルスクリプト特有の癖や記法も数多くあり、最近の言語に慣れている人ほど、つまずくポイントが多いです。 しかし、シェルスクリプトだからこその良さもあります。Bash は現在でも多くの OS で標準シェルとして採用されており、普段使っているシェルコマンドを書くだけで動かせる手軽さは何者にも代えがたいです。一度身につけておくと長く使えるお得な

    シェルスクリプトを高級言語のような書き味に近づける Tips 集 | 創作メモ帳
    gonsuke777
    gonsuke777 2018/12/12
    これは素晴らしい彡(゚)(゚)
  • [小ネタ] シェルスクリプトで日付 ⇔ UNIXTIME 相互変換の計算がしたい(GNU date, Python) | DevelopersIO

    TL;DR シェルスクリプトで日付の計算する時には、一回 UNIXTIME を挟むと便利 GNU date コマンドがあればそれで一発。macOS でも brew で導入可能 なければ、Python でごにょごにょすればいい シェルスクリプトで日付の計算がしたい (GNU date) いまのご時世、例えば 10/31 の 23:00 から 5時間後 のタイムスタンプを計算しようとして、いちから正規表現で文字列を切り出して繰り上がりを計算して。。。ということはもうやりたくないです(挨拶)。 いろんなやり方があると思いますが、なるべく汎用的で手軽に、シェルスクリプトから使える方法で。。。と考えて、最初に思いついたのが GNU date を使うやり方です。-d オプションで指定すれば、望んだ時点の日付を好きなフォーマットで出力できます。 GNU Coreutils: 21.1.7 date の使

    [小ネタ] シェルスクリプトで日付 ⇔ UNIXTIME 相互変換の計算がしたい(GNU date, Python) | DevelopersIO
  • シェルスクリプトの中で1行ずつ変数を分割する際には、cutとかawkとか余計なプロセスを起動せずsetを使って分割した方が効率的 - 双六工場日誌

    シェルスクリプトの中で、スペース区切りもしくはタブ区切りのレコードを扱うことがよくあると思います。 たとえば、前回のエントリ「AWS CLIとjqを使って、AWSのELBボリュームがアタッチされているEC2インスタンス名を出力するワンライナーを書いた - 双六工場日誌」のスクリプトの出力は以下のようになります。 i-ec56a9f5 vol-07d00601 servername i-ec56a9f5 vol-8f550991 servername このようなレコードの特定の列を取り出して、処理する際にどうするのが効率的か、というのがこのエントリのお題です。 非常に古い話題なので、昔からシェルスクリプトを書いている人には自明な話ではありますが、最近、シェルの標準機能の話を聞く機会がなく、失われつつある技術になってきている気がしているので、改めて確認ということで。 例として挙げたレコードから

    シェルスクリプトの中で1行ずつ変数を分割する際には、cutとかawkとか余計なプロセスを起動せずsetを使って分割した方が効率的 - 双六工場日誌
  • 1