タグ

scriptとshellに関するWatsonのブックマーク (12)

  • bash スクリプトの先頭によく書く記述のおさらい - Money Forward Developers Blog

    こんにちは。 マネーフォワードでアグリゲーション開発を担当しています中川です。 今回のブログは、私が bash スクリプトを書く際に心がけている事のおさらいをします。 知ってて当たり前のことかも知れませんが、意外と理解されていないアレです。 では、私が bash スクリプトを書く際によく使う記述を一つずつ紹介します。 2種類の shebang シェルスクリプトの一行目に必ず記述する #! で始まる行を shebang と言います。 bash スクリプトの shebang は、bash を絶対パスで指定する方法と、env を使って指定する方法の二種類あります。 bash を絶対パスを指定する方法 #!/bin/bash env を使ってを指定する方法 #!/usr/bin/env bash 前者は /bin/bash が使われます。 (/bin/bash が存在しなければスクリプトの起動時に

    bash スクリプトの先頭によく書く記述のおさらい - Money Forward Developers Blog
  • oss-lab.net - Registered at Namecheap.com

    2020 Copyright. All Rights Reserved. The Sponsored Listings displayed above are served automatically by a third party. Neither Parkingcrew nor the domain owner maintain any relationship with the advertisers. Privacy Policy

  • シェルスクリプトでパイプを判断する - Qiita

    Unix の基的考え方のひとつに「フィルタとして振る舞う」というものがあります。標準入力から入力をして何らかの処理を行い、標準出力に出力を行うように設計されているコマンドを フィルタ と呼びます。フィルタ・コマンドそれ自身は単純な機能しか持っていませんが、これを | (バーティカルバー)で結びつけることでフィルタを部品のように扱い、大きな機能をもったコマンドとして機能させることが出来ます。 (例)

    シェルスクリプトでパイプを判断する - Qiita
  • UNIX & Linux コマンド・シェルスクリプト リファレンス

    このサイトは近い将来、閉鎖予定です。 引っ越し先はこちら: https://scrapbox.io/shellscript-reference/ 20年以上にわたって運営を続けてきたサイトですが、十分な役割を果たし終えたと考え、このたび幕を閉じることといたしました。 ここでシェルスクリプトを習得された多くの方々の活躍を思うと、運営してきた歳月には、確かな価値があったと確信しております。 これまでご愛読いただき、誠にありがとうございました。 目次 当サイトについて bash シェルスクリプト入門 -シェルスクリプトのいろは- コマンド Tips シェルスクリプト Tips 変数を使用する 配列を使用する 入力と出力 if 文と test コマンド for 文の使用方法 while 文の使用方法 case 文の使用方法 関数の使用方法 引数を処理する 終了ステータス シグナルと trap コ

    UNIX & Linux コマンド・シェルスクリプト リファレンス
  • シェルスクリプトを多重起動しないようにする - 西尾泰和のはてなダイアリー

    最初はこう書いていた。 lockfile build.lock ... rm -f build.lockだけど、lockfileは失敗した時にデフォルトでは無限にリトライをする。ちょっと出来心で$ for i in {1..100}; do ./foo.sh; done;したから100人の待ち行列が出来てしまった。 やりたかったことは「既に起動していたら続行しないで終了」だったので-r 0でリトライ回数を0にした。 lockfile -r 0 build.lock || exit 1 ... rm -f build.lock

    シェルスクリプトを多重起動しないようにする - 西尾泰和のはてなダイアリー
  • 一見読みにくい記法もシェルスクリプトの流儀

    前回に引き続き、今回もOS付属のシェルスクリプトを読んでいく。「当にこれでいいのか?」と思うような読みにくい記述も見つかるが、よく読むとシェルスクリプトならではの流儀を学ぶことができる(編集部) とにかく何か作ってみろ シェルスクリプトはお世辞にも読みやすいプログラミング言語とは言えない。ほかの言語にはない特有のルールがあるので、あまり経験がない人がちょっと複雑なシェルスクリプトを読むと嫌になってしまうかもしれない。 その半面、シェルスクリプトにはちょっと書いてすぐに試せるという良い点がある。シェルスクリプトの解説書やソースコードを読みながら「なんだかよく分からない」「マニュアルを読んでもよく分からない」という人には、短くてもいいからとにかく何かシェルスクリプトを書いて、試してみることを強くお勧めする。 これはどんなプログラミング言語にも言えることだが、習得しようと思っても、解説書を読ん

    一見読みにくい記法もシェルスクリプトの流儀
  • シェルスクリプトを書く際に気を付けていること8箇条 - カイワレの大冒険 Third

    エンジニアという職業柄かシェルスクリプトを書くことはちょくちょくあるのですが、自分なりに気を付けていることを備忘録&自分への戒めも含めて、簡単に書いてみたいと思います。 変数は大文字 シェルスクリプト書いていれば変数の出番は至るところであるでしょう。その際、可読性を増すように、変数は大文字を使っています。 RET=`cmd1`みたいに。好みの問題もあるでしょうが、分かりやすいので。 クオテーションは選ぶ クオテーションにはシングルだったり、ダブルだったり色々ありますが、使い分けておいたほうがよいでしょう。 変数の展開がないようであれば、シングルクオーテーションのほうがスマートでしょうし、展開があるのならダブルクオーテーションを使えばと。 ダブルクオーテーションを使うのにも意味があって、変数は「$RET」のようにクオテーションで囲まなくても動作はたいていするのですが、 echo "${RET

    シェルスクリプトを書く際に気を付けていること8箇条 - カイワレの大冒険 Third
  • OSに付属するシェルスクリプトを読んで技術を盗む

    今回から、OS付属のシェルスクリプトを読んでいく。多くの人が使っているスクリプトを読むことで、シェルスクリプトならではの書き方、テクニックを身に付けることができるはずだ(編集部) 他人の技術を盗まなければ進歩はない 外国語をマスターするにも、楽器の演奏を覚えるにも、上達するにはただ練習するだけではダメだ。素晴らしいお手を見つけて、よく観察し、何度もまねることが必要だ。お手から技術を「盗む」ことが大切だということだ。 プログラミングでも同じことが言えると思う。文法を覚えて、ただひたすらプログラムを書くだけではなかなか上手にならない。スキルのある人のコードを見て、技術を盗もう。開発チームのメンバーそれぞれが書いたコードを持ち寄って、お互いに批評し合う「コードレビュー」に参加している、あるいはリーダーとして主催しているという人は多いと思う。このコードレビューも、人から技術を盗む良い機会と言え

    OSに付属するシェルスクリプトを読んで技術を盗む
  • 「Platypus」でメニューエクストラ常駐型アプリを自作 - builder by ZDNet Japan

    前回紹介したPlatypusは、早い話が「シェルスクリプトを一般的な(バンドル型の)アプリに変換する」ためのユーティリティだ。ユーザーにシェル/ターミナルの存在を意識させることがないうえ、Xcodeを使うほどでもない単機能なGUIプログラムを手早く作成できる。Automatorで作成したアプリのように、OSのバージョンに依存しない点もメリットだ。 その基的な機能から解説していこう。まず、起動後に表示されるダイアログには、生成するアプリケーション名を入力する「App Name」、スクリプトの種類を指定する「Script Type」、あらかじめ用意しておいたスクリプトの保存位置を指定する「Script Path」がある。この3カ所への入力は必須で、スクリプトの内容によってはこれだけで足りることもある。 Platypusのユニークな点は、出力先にバリエーションがあることだ。デフォルトでは「Pr

    「Platypus」でメニューエクストラ常駐型アプリを自作 - builder by ZDNet Japan
  • それブレース展開でできるよ! - 杉風呂2.0 - A Lifelog -

    先日、IRCNet #ruby:*.jp で話題になったのでメモ。 シェルスクリプト中で連番や複数回の繰り返しが必要になった場合、BSD系 (4.2BSD以降・Mac含む) では jot、GNU系では seq を使うことが多い。が、普通は片方しか入っていないし、互換性も全く無いというやっかいな代物。 http://d.hatena.ne.jp/hirata_yasuyuki/20110104/sequential_numbers ということですが、bashやzshなどのシェルで新しめのバージョンであれば、ブレース展開でできますね。 for i in {0..9}; do echo $i #=> 0〜9を出力 done 増加分を考慮する場合は、あらかじめ計算しておく必要がありますが、以下のような感じですね。 for i in {0..4}; do echo $((i*2+1)) #=>奇数の

    それブレース展開でできるよ! - 杉風呂2.0 - A Lifelog -
  • 【レビュー】bashの配列を使う方法 | エンタープライズ | マイコミジャーナル

    Guides, HowTos and Tips for Technology Geeks - The Geek Stuff 高機能シェルのひとつにbashがある。shの機能を拡張したsh系に分類されるシェルで、インタラクティブシェルとしてもシェルスクリプトとしても利用される。Linux系のディストリビューションではデフォルトでインストールされ、デフォルトのシェルに設定されていることが多い。その場合、システムの/bin/shの実態がbashになっていることもあり、/bin/shスクリプトを書いているつもりでいつの間にかbashの拡張機能を使っていることもある。 The Ultimate Bash Array Tutorial with 15 Examples - The Geek Stuffにおいてbash拡張機能のひとつである配列の機能が紹介されている。15のサンプルにわけて機能を紹介する

  • Amazon EBSのスナップショット(バックアップ)を取得しつつ世代管理も行うスクリプト - 元RX-7乗りの適当な日々

    # タイトル長い。 Amazon EBS(Elastic Block Store)では、スナップショット機能と呼ばれる、ボリューム(ディスク)を瞬時にバックアップする機能をAPI経由で簡単に使うことができます。 参考 最近発表されたストレージサービスAmazon EBS(Elastic Block Store)をEC2から利用する - 元RX-7乗りの適当な日々 Amazon EBSを活用してデータをバックアップしてみよう ~Amazon EC2/S3環境構築のすべて~ (1/6):CodeZine(コードジン) そんな便利機能なEBSスナップショット君ですが、そのバックアップデータの保存先はAmazon S3ということで、S3の利用容量無制限!という素晴らしい恩恵を受けちゃっていて、当然、バックアップデータの世代管理は使い手自身に委ねられています。 ということで、指定したEBSボリューム

    Amazon EBSのスナップショット(バックアップ)を取得しつつ世代管理も行うスクリプト - 元RX-7乗りの適当な日々
  • 1