タグ

shellscriptに関するopparaのブックマーク (13)

  • シェルスクリプト[[]]のススメ - DENET 技術ブログ

    こんにちは。 最近シェル芸かっこいいなと思い立ちシェルスクリプトの勉強をしています。 下地です。 今日はシェルスクリプトの小技を紹介しようと思います。 宜しくお願いします。 if文お供 [と[[ シェルスクリプトを書くときに良くお世話になるのがif文です。 ifは条件分岐を行う制御構造ですが、一緒に使われるのが[です。 私も最初勘違いしていたのですが、これは条件式ではなくてコマンドです。 別名testコマンドと呼ばれています。 #!/bin/bash string=aaa if [ "$string" = aaa ]; then echo OK fi という感じで使われます。 このように条件を判断する[コマンドですが、似たような構文として[[という書き方があります。 これは[とは違い、コマンドではなく構文です。 [を使うときよりシンプルにかける場面が多です。 ではどのような時にメリットがあ

    oppara
    oppara 2023/05/02
    [[[]]]
  • シェルスクリプトの変数はダブルクォートしなければいけない!という話 - Qiita

    TL; DR 変数をダブルクォートしない使い方は上級者向けの危険な機能です! $@ と $*(または配列の全要素)をダブルクォートしない使い方は知る必要すらありません! ShellCheck を導入すれば誰でも簡単に正しい書き方がわかります!! 2021-08-21 補足 この記事は dash や bash などの POSIX シェルの一般的な動作を解説しており zsh のデフォルトとは異なります。記事の中でも説明していますが zsh の場合はシェルのオプションを変更することで POSIX 準拠の動作に変更することができます。zsh に関しては後半の「zsh に関する注意点」も参照してください。 はじめに プログラミング言語は、言語によって記号の意味が異なることがよくあります。クォーテーションマークはその一つです。C 言語ではシングルクォートは文字リテラル(一文字)を意味し文字列はダブルク

    シェルスクリプトの変数はダブルクォートしなければいけない!という話 - Qiita
  • AWS Batchでシェルスクリプトを実行する典型的パターンのご紹介 | DevelopersIO

    去年のre:Invent 2016で発表された、AWS Batch。みなさん、お使いでしょうか? え、名前はシンプルなのに、案外むずかしい? であれば、自分とまったく同じ印象です。 今回は、AWS Batchを利用して、シェルスクリプトを実行するための典型的パターンをご紹介。シェルスクリプトからは、任意のスクリプト(Pythonとか、Node.js)も呼び出すことができ汎用性が高いので、AWS Batchにおけるアプリケーション処理の実装方式として、参考にしていただければと思います。 ほな、いってみよ! 構成図 今回構築する環境の概要は以下の通り。シェルは大きく2つに別れます。AWSの構成要素は非常にシンプルです。 myjob.sh ユーザーが作成するシェル。アプリケーション処理の体はこちらに記述し、事前に任意のS3バケットにアップロードしておく。 fetch_and_run.sh my

    AWS Batchでシェルスクリプトを実行する典型的パターンのご紹介 | DevelopersIO
  • ちょっと複雑なシェルスクリプトをGoで書く - aereal-tech

  • ShellScriptでの事故防止としてShellCheckを適用してみた | DevelopersIO

    Linterを用いてのチェックを行う場合、個人的に一番厄介なのはシェルスクリプト。いずれの環境でも問題なく動かせることを見送るとしても、それでもWarning表示がなかなか消えません。 ShellCheckを使った、OSX環境でのWarning対処として実践してみたことについて書いてみました。 ShellCheck環境の設定 ShellCheckを有効にしておきます。 brew install shellcheck この記事での実行は coc-diagnostic にて。 :CocInstall coc-diagnostic とあるスクリプトのWarning潰し よくあるシェルスクリプトもWarningの宝庫です。 #!/bin/sh CURRENT=$(cd $(dirname $0) && pwd) cd $CURRENT ポイントは一行に複数のWarning表示が含まれているところ。

    ShellScriptでの事故防止としてShellCheckを適用してみた | DevelopersIO
  • GitHub - mac-cleanup/mac-cleanup-sh: 🗑️ Cleanup script for macOS (DEPRECATED)

  • シェルスクリプトのための良いデザイン ~ expr と bc から知る設計の違い ~ - Qiita

    はじめに POSIX で規定されているコマンドに expr コマンドと bc コマンドがあります。expr は正規表現による比較ができる一方 bc コマンドは高度な算術計算が行えるなど機能は全く同じではありませんが共通する機能として数値計算機能を持っています。ただし同じ計算を行うだけでも、この 2 つのコマンドは設計に大きな違いがあります。この記事ではこの 2 つのコマンドの違いから、シェルスクリプトにとってふさわしいコマンドの設計について解説します。 引数 vs パイプ expr と bc の違いは簡単な計算を行うだけですぐ気づきます。例えば 1 + 2 を行う場合は次のようになります。 なんと bc コマンドは面倒くさいんでしょう? どうみても expr の方が直感的です。わざわざ計算する数式をパイプで渡すなんて冗長です。echo なんて要らないでしょう?シェルスクリプトを格的に学ぶ

    シェルスクリプトのための良いデザイン ~ expr と bc から知る設計の違い ~ - Qiita
  • シェルスクリプト リファクタリング ~遅いシェルスクリプトが供養されてたので蘇生して256倍に高速化させました~ - Qiita

    はじめに ことの始まりは「シェルスクリプトでツールを作ったけど速度が遅くて使い物にならなかったので供養」というツイートを見たからです。コードを見てみると、実例をあまり見ないシェルスクリプトのリファクタリング例として丁度良い内容と分量だったため記事にいたしました。記事を書くにあたりコードの利用を快く承諾していただいた @Hayao0819 様にはこの場を借りて御礼を申し上げます。 内容は章立てで構成しており、序章で事前調査をし、第一章で一般的なリファクタリング、第二章でパフォーマンスを重視したリファクタリング、終章で少し余談をして締めくくっています。最初はパイプは並列処理されるから速くなるというのは神話(そうとは限らない)についても書いていたのですが流石に長いので分けました。それでも書きたいことを色々書いていたらめちゃくちゃ長くなってしまいましたので読み物として私がどんなことを考えながらリフ

    シェルスクリプト リファクタリング ~遅いシェルスクリプトが供養されてたので蘇生して256倍に高速化させました~ - Qiita
  • シェルスクリプトとMakefileの使い分け - ククログ(2012-10-24)

    先日紹介したシェルスクリプトで「ビルドスクリプト」を作る時に便利なテクニックへのコメントとして「なぜMakefileでやらないのか」「Makefileの方がいいのではないか」といったものがありました。確かにmakeはメジャーなビルドツールなので、そのような疑問が出てくるのも当然でしょう。 なぜシェルスクリプトなのかということの理由はいくつかあります。 1つは、先のエントリの題材としたスクリプトが元々はWindows用のバッチファイルをLinuxのシェルスクリプトに移植したものだったからという理由です。Windowsのバッチファイルのベタ移植として作成したシェルスクリプトを継続的にメンテナンスしてきた間の改良の結果として、いくつかのテクニックが盛り込まれるようになったため、そのテクニックにスポットを当てて紹介しようというのが、先のエントリの発端でした。 もう1つは、シェルスクリプトは「シェル

    シェルスクリプトとMakefileの使い分け - ククログ(2012-10-24)
  • シェルスクリプトで正しい二重起動チェックを解説しているページ、もしくは方法を教えてください。

    シェルスクリプトで正しい二重起動チェックを解説しているページ、もしくは方法を教えてください。

  • シェルスクリプトで「ビルドスクリプト」を作る時に便利なテクニック - ククログ(2012-10-11)

    プログラムの種類によっては、そのまま実行できるものと、実行できるようにするために「ビルド」が必要なものとがあります。Cなどのコンパイルが必要な言語で書かれたプログラムは当然ビルドが必要ですし、コンパイルが不要な言語であっても、インストーラパッケージを作るというビルド作業が必要な場合はあります。 ビルド作業の自動化のためのツールとしてmakeなどがありますが、そこまで格的な事をやる必要がない場合は、シェルスクリプトで「ビルドスクリプト」を作るのが手軽でおすすめです。この記事では、そのような場合に役立つシェルスクリプトのテクニックを4つご紹介します。 エラーの気付きやすさとデバッグのしやすさを高める メッセージに色を付ける シェル関数をライブラリにする 一時的に作業ディレクトリの中に入る エラーの気付きやすさとデバッグのしやすさを高める はじめに紹介するテクニックは問題が発生した時に気づきや

    シェルスクリプトで「ビルドスクリプト」を作る時に便利なテクニック - ククログ(2012-10-11)
  • shell script を書くときの tips 2つ(初心者向け) - tokuhirom's blog

    shell script は普段さけて通りたいと願ってやまないわけですが、たまには書かないといけないことがあるので、そういうときは覚えておくと便利な tips を2つ。 autodie っぽくするset -eとすると、コマンドの実行に失敗したときにそこで実行がとまるので便利。 #!/bin/sh set -e perl -e 'die' echo SHOULD NOT REACH HEREとすると % ./hoge.sh Died at -e line 1. % echo $? 255となって、最後までいかずに死にます。 複数のコマンドを順番に実行するときに便利。 なお、以下のような挙動をするんだそうです。 ただし失敗したコマンドが until または while ループの一部である、 if 文の一部である、 && または || リストの一部である、 コマンドの返り値が ! で反転されてい

  • 連載記事 「スマートな紳士のためのシェルスクリプト」

    シェルスクリプトはエレガントでなければならない スマートな紳士のためのシェルスクリプト(1)  気軽に使えるシェルスクリプト。しかし、気軽に使っていてはダメだ。OSの仕組みまで理解すると、ひと味違うスクリプトが書ける

  • 1