タグ

developmentとshに関するAmaiSaetaのブックマーク (6)

  • シェルスクリプト(sh/bash/zsh)で変数から変数へ代入する方法について - Qiita

    以下 sh/bash/zsh について同様ですが、例では bash とします。 変数から変数への代入 シェルスクリプトで変数から変数へ代入する場合、ダブルコーテーション(")で括る必要はありません。

    シェルスクリプト(sh/bash/zsh)で変数から変数へ代入する方法について - Qiita
    AmaiSaeta
    AmaiSaeta 2021/10/07
    `$(~~)` の内容を `echo` したら改行が無くなる(空白になる)ので、 `$(~~~)` は改行を空白にするのかと思ってた……
  • getoptions を使って面倒なシェルスクリプトのオプション解析コードを自動生成しよう! - Qiita

    はじめに getoptions はシェルスクリプト用のオプションパーサーです。getopts や getopt の代わりに使うことができ、getoptions をインストールするだけで簡単にシェルスクリプトのオプション解析を実装することができます。しかし、不特定の人に配布するシェルスクリプトの場合は getoptions をインストールしてもらうというのは選択肢にならないかもしれません。 でも大丈夫! getoptions はオプションパーサーのジェネレータとして使うこともできます。ジェネレータとして使うと自分でオプションパーサーのコードを書く必要はありません。 オプションパーサーとしての使い方はこちら 「シェルスクリプト(bash等)の引数解析が究極的に簡単になりました」 使い方 オプションパーサーとして使う場合は getoptions コマンドをインストールするだけで使えますが、ジェネ

    getoptions を使って面倒なシェルスクリプトのオプション解析コードを自動生成しよう! - Qiita
  • ShellCheck – shell script analysis tool

    GPLv3: free as in freedom documented on the ShellCheck Wiki available on GitHub (as is this website) already packaged for your distro or package manager supported as an integrated linter in major editors available in CodeClimate, Codacy and CodeFactor to auto-check your GitHub repo written in Haskell, if you're into that sort of thing.

    AmaiSaeta
    AmaiSaeta 2019/07/24
    bash/shのlinterみたいな物かね。
  • プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話 - Qiita

    プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話ShellScriptBash 普通のプログラミング言語での開発に慣れた人ほどシェルスクリプト、特にBashで戸惑う部分の一つに、i = 0のように空白を開ければエラーになるし、かといってif[$i!=0]のように詰めてもやっぱりエラーになる、という点が挙げられます。書きたい物を思うように書けなくて「なんだよこのクソ言語は!!!」とブチギレる人は少なくないのではないでしょうか。この記事では、そのイライラを解消するポイントをお伝えしようと思います。 以下、特に断り無く「シェルスクリプト」と書いている場合はすべて「Bashのスクリプト」という意味になります。zsh等他のシェルではまた事情が異なりますので、ご注意ください。 (※以前プログラマーの君! 騙されるな! シェルスクリプトはそう書いち

    プログラマーの君! 勘違いするな! シェルスクリプトでは読みやすさのためにスペースを置くな!! という話 - Qiita
    AmaiSaeta
    AmaiSaeta 2018/07/25
    「想定外の使い方しといて文句言うな」という話ではある。 | 注釈3はちょっと前に悟った。
  • シェルスクリプトを何万倍も遅くしないためには —— ループせずフィルタしよう - Qiita

    🐚 🐚 🐚 🐚 シェルスクリプトは遅すぎて使えない 普通の「速い言語」より何百、いや、何千倍も遅い 他のプログラミング言語を経験してからシェルスクリプトに入門し、このような感想を持つ方も多いのではないでしょうか。 実際、こういったことは往々にして起こり得ますので、「速い言語」を使うべきか否か見極めることは大事だと思います。 しかし、当にシェルスクリプトというのは、そこまで遅いのでしょうか? データ量が多い場合は常に最初から「速い言語」で書いた方がよいのでしょうか? 実は、そうとも限りません。 シェルスクリプトにはシェルスクリプトなりの「速い書き方」があります。 この「速い書き方」で処理できる問題に関しては、シェルスクリプトは「速い言語」なのです。 では、「速い書き方」とは何かというと、端的には「たくさん繰り返されるループはシェルスクリプトで記述しない」ことです。 以下でこれを説明

    シェルスクリプトを何万倍も遅くしないためには —— ループせずフィルタしよう - Qiita
    AmaiSaeta
    AmaiSaeta 2017/12/02
    文法……というか思想レベルで違う物で同じやり方を通そうとすれば、そりゃ無理が出てくるよなぁ。
  • シェルスクリプトの[[と[の違い

    Yoshiaki Kawazu🐸ずん @kawaz シェルスクリプトのテストコマンド [ と [[ の違い。 [[はbashの組み込みコマンドで、[は単にtestという外部コマンドの別名。なので必然[[の方が速い。 [[では比較演算子の<と>がエスケープなしで使える。[では¥<や¥>とする必要がある。 (続く… 2013-02-12 14:05:41 Yoshiaki Kawazu🐸ずん @kawaz (続き) [[では比較演算子の<と>がロケールに応じた辞書順比較になる。[ではASCII辞書順。 [[では=~で正規表現マッチングが使える。bashバージョン3以降の機能。 [[では演算子を"-f"のようにクオートするとエラーになる。]では問題ない。 こんなところかな。 2013-02-12 14:07:56

    シェルスクリプトの[[と[の違い
  • 1