タグ

シェルスクリプトに関するkorinのブックマーク (10)

  • シェルスクリプトの書き方

    12月にTwitterに流れていたPOSIX何とかという話題を読んでいたらこの記事にたどり着いた。もう3年以上前の記事だけれど、内容がとても偏っていると思う。 シェルスクリプトの書き方について解説しているウェブ上の資料は少なく、当該記事も検索に引っかかりやすい。最近の初学者はまず検索して調べることが多いが、反論が検索に引っかからないとそれが正しいと受け入れてしまう可能性が高いように思う。きちんと反論している日語の記事が引っかからないので、あえて問題と思う点をまとめてみた。 そんなこと書いているあなたは誰? わたしはシェルスクリプトの専門家でも職業プログラマでもないけれど、シェルスクリプトを書いた量はそれなりにあると思う。環境はSunOS4, Solaris, HP-UX, IBM AIX, FreeBSD, OpenBSD, Linuxを経験していて、移植性や性能の問題がどこで発生しやす

  • 私が他人のシェルスクリプトから学んだこと | Yakst

    私はシェルスクリプトの大ファンで、他人のスクリプトから面白い方法を学ぶのが大好きだ。最近、SSHサーバの2要素認証を簡単にするためのauthy-sshスクリプトに出会った。このスクリプト群を見まわしていて、みんなと共有したいたくさんのクールなことを見つけた。 出力に色付けする 出力文字列を、成功した時は緑に、失敗した時は赤に、警告は黄色に色づけしたいと思うことはたくさんあるだろう。 NORMAL=$(tput sgr0) GREEN=$(tput setaf 2; tput bold) YELLOW=$(tput setaf 3) RED=$(tput setaf 1) function red() { echo -e "$RED$*$NORMAL" } function green() { echo -e "$GREEN$*$NORMAL" } function yellow() { e

    私が他人のシェルスクリプトから学んだこと | Yakst
    korin
    korin 2016/08/31
    ところで、このPocket数すごいです。はてぶよりはやっているのか?というかジャンルが違うと思いますけれども。
  • なんでも自動化するエンジニアが残していったライフハック・スクリプト

    元々はロシア語の掲示板に出ていた、職場での小さなことをなんでも自動化していたハッカーの話が英語に翻訳され、Hacker News等で話題になっています。 xxx(ハンドル名): オーケー、ビルド担当エンジニア転職で辞め […] 元々はロシア語の掲示板に出ていた、職場での小さなことをなんでも自動化していたハッカーの話が英語に翻訳され、Hacker News等で話題になっています。 xxx(ハンドル名): オーケー、ビルド担当エンジニア転職で辞めちまった。当にターミナルに住んでるようなやつだった。わかるだろ、Vimが大好きで、.dotファイルで図を描いて、Markdownでwikiに投稿するようなタイプさ… もし何か、そう何でも、90秒以上掛かるようなことがあったら、スクリプトで自動化しちゃうんだ。 xxx: そういうわけで我々はここにいて、彼の、そう、「遺産」を見てるところだ。 xxx

    なんでも自動化するエンジニアが残していったライフハック・スクリプト
  • シェルスクリプトの中で1行ずつ変数を分割する際には、cutとかawkとか余計なプロセスを起動せずsetを使って分割した方が効率的 - 双六工場日誌

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

    シェルスクリプトの中で1行ずつ変数を分割する際には、cutとかawkとか余計なプロセスを起動せずsetを使って分割した方が効率的 - 双六工場日誌
  • AWKで一番の得意ワザ! シェルで文字列を自在に扱うための文字列関数

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    AWKで一番の得意ワザ! シェルで文字列を自在に扱うための文字列関数
  • 使いやすいシェルスクリプトを書く

    できればシェルスクリプトなんて書きたくないんだけど,まだまだ書く機会は多い.シェル芸やワンライナーのような凝ったことではなく,他のひとが使いやすいシェルスクリプトを書くために自分が実践していることをまとめておく. ヘルプメッセージ 書いてるシェルスクリプトが使い捨てではなく何度も使うものである場合は,体を書き始める前に,そのスクリプトの使い方を表示するusage関数を書いてしまう. これを書いておくと,後々チームへ共有がしやすくなる.とりあえずusage見てくださいと言える.また,あらかじめ書くことで,単なるシェルスクリプトであっても自分の中で動作を整理してから書き始めることができる.関数として書くのは,usageを表示してあげるとよい場面がいくつかあり,使い回すことができるため. 以下のように書く. function usage { cat <<EOF $(basename ${0})

  • シェルスクリプトを書くときの頻出コードメモ - Λlisue's blog

    Linuxを使っているのでインストールや環境構築でシェルスクリプト (bash )をよく書きます。 シェルスクリプトだと様々な表現が可能なのですが、他言語と違い適当にかけないことが多々あるのでよくググる頻出コードをまとめておきます。 起動スクリプトのパスを取得 インストールや環境構築で使うことが多いのでスクリプトファイルからの相対パスを使いたい場合が多いです。Pythonであればos.path.dirname(__file__)にて簡単にとることができるのですがシェルスクリプトの場合は下記のようになります。 # 一行で書く方法 ROOT=$(cd $(dirname $0);pwd) # わかりやすい書き方 ROOT=`dirname $0` ROOT=`cd $ROOT;pwd` # 使用例(スクリプトファイルと同位置にあるvimrcを~/.vimrcにリンク) ln -sf $ROOT

    シェルスクリプトを書くときの頻出コードメモ - Λlisue's blog
  • bashのプロセス置換機能を活用して、シェル作業やスクリプト書きを効率化する - 双六工場日誌

    @hirose31 さんが「シェルスクリプトでハマった件→【募】ステキな回避方法」でお題を出されていて、それに回答してみました。 その内容はリンク先を見てもらうとして、回答の中で使ったbashのプロセス置換について書かれた記事をあまり見ないので、回答で使ったプロセス置換のことをエントリにしてみたいと思います。 最初に注意点ですが、プロセス置換の機能は、bashやzsh*1の機能でPOSIX互換の機能ではありません。そのため、使用時には、対応していないシェルでは使えませんし、bashで使う場合も /bin/sh ではなく /bin/bash を明示的に指定する必要があります。たとえば、プロセス置換を使ったスクリプト「script.sh」に対して"$ bash script.sh" というコマンドは成功しますが、"$ sh script.sh" というコマンドは失敗します。この辺りの違いは「/

    bashのプロセス置換機能を活用して、シェル作業やスクリプト書きを効率化する - 双六工場日誌
  • シェルスクリプト内でXMLから情報を取り出す

    RHEL/CentOS、Xenを中心にメモを残していきます。内容は無保証。適用する場合は、十分確認の上、自己責任で。 指摘、質問、要望をコメントしてもらえると喜びます。 XML形式により情報をやり取りすることが多くなった昨今、シェルスクリプト(shell script)でXMLを扱うことも増えてきた。例えば、libvirtを使ってvirsh dumpxml DomU名として得た仮想マシンの設定情報などだ。Xen DomU dc1の設定ファイル/etc/xen/dc1が、name = "dc1" uuid = "4df3f764-00cb-42a6-8ff6-a98985cbda14" maxmem = 256 memory = 64 vcpus = 1 bootloader = "/usr/bin/pygrub" on_poweroff = "destroy" on_reboot = "r

  • シェル・スクリプト・リファレンス・ランキング

    Linuxで一連の処理を行う際には,シェル・スクリプトが役立ちます。シェル・スクリプトは,シェル上で同じような操作を続けるときや複雑な操作を行いたいときに,その操作手順をテキスト形式で記述しておき,任意に実行できるファイルです。定型的な処理を繰り返し実行するときに便利ですが,シェル・スクリプトを作成するには,記述のルールなどを知っておく必要があります。 日経LinuxのWebサイトでは,シェル・スクリプトの使い方について紹介した「シェル・スクリプト・リファレンス」を公開しています。シェル・スクリプトの基的な知識から,変数の扱い方,繰り返しや条件分岐などの記述方法,シェル・スクリプトで便利に利用できるコマンドなどを紹介しています。 日経Linuxは2006年3月1日に,シェル・スクリプト・リファレンスをITproに公開しました。公開後1年が経過したのを契機に,過去1年間によく閲覧された項目

    シェル・スクリプト・リファレンス・ランキング
  • 1