2013年8月24日、LLまつりにて行ったチュートリアル。いつもより難しめの問題。Read less
私はシェルスクリプトの大ファンで、他人のスクリプトから面白い方法を学ぶのが大好きだ。最近、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
追記: 解答編を下の方に書きました!!! 追記: お題に不備があったので変更しました>< あとgistに一式置いたので簡単にテストできます!! https://gist.github.com/hirose31/6232206 git clone https://gist.github.com/6232206.git oreno cd oreno ./test.sh source_me.sh ... シェルは GNU bash, version 4.1.5(1)-release です。 こんな source_me.sh と、 case $PATH in */oreno/bin*) : # do nothing ;; *) . orenorc LOADED_ORENO=1; export LOADED_ORENO ;; esac orenorc ってファイルがあって、 ORENO_HOME="
本文書は筆者:葉山薫が勤務先で実施した勉強会の資料から、 守秘義務に抵触すると思われる部分を修正し、一般向けに改めたものです。 なお、作成には私的時間を投じましたので、著作権は筆者にあります (勉強会自体は勤務時間でしたが)。 なお、記述の内容のために何らかの損害が生じましても筆者は一切関知しません。 本講座の目的・ねらい 参加者が、自分でシェルスクリプトを作成できるようになる。 基本的には、全てを勉強会で学ぶわけではなく、 スクリプトを組むにあたり、必要最小限の知識を身につける。 不明な点があった場合の調べ方を知る。 というところに焦点を絞りたい。 本勉強会のねらいとしては スクリプトを書いて、しょうもない手作業を自動化し、工数を節約しよう! スクリプトを学ぶ過程で、UNIX の知識も増やそう! がある。 シェルとは UNIXの入力メニュー 言語インタープリタ シェルスクリプトとは極端な
みなさんこんにちは。久々にゲラで笑う飲みがありまして、顔の筋肉が大変なことになっています。飲み会で撮った写真を手元のマシン(CentOS)で編集するのに、iPhoneからDropboxを経由して同期しており大変便利なのですが、iPhoneで自動的につけられるファイル名にスペースが複数含まれており、コマンドラインからの操作がちょっと面倒です。しかしそこはシェル芸でファイル名を変更してしまいましょう。 さて、写真があるディレクトリですが、ご覧のように他の参加者からもらったファイルも含めて、ファイル名の規則がバラバラだったりします。 [ (っ´∀`)っ@友の会 ~]$ ls | sort 1081356_10200364337474395_170357340_n.jpg 写真 2013-07-30 21 17 09.jpg 写真 2013-07-30 21 17 48.jpg 写真 2013-0
皆さんこんにちは。今年も半分\(^o^)/オワタと嘆くよりも、21世紀の1/8が終わったというスケールの大きさでいろいろと誤魔化している (っ´∀`)っ ゃー でございます。いかがお過ごしでしょうか。 MySQLのバックアップは常にとっておきたいですよね。シェルスクリプトに書いてしまってcronでまわせば、わざわざコンソールやブラウザ(phpMyAdmin)でカタカタポチポチしなくて済みます。今回作成したMySQLのバックアップシェルスクリプトは、ワンライナーではありませんがワンライナーの応用を使っているので、一応シェル芸のひとつとしてご紹介したいと思います。 まずはいきなりソースを見てみましょう。 #!/bin/bash LANG=C ID=<全DBにアクセスできるID rootとか> PASSWD=<パスワード> DSTDIR=${HOME}/src/sql [ ! -d ${DSTD
エンジニアという職業柄かシェルスクリプトを書くことはちょくちょくあるのですが、自分なりに気を付けていることを備忘録&自分への戒めも含めて、簡単に書いてみたいと思います。 変数は大文字 シェルスクリプト書いていれば変数の出番は至るところであるでしょう。その際、可読性を増すように、変数は大文字を使っています。 RET=`cmd1`みたいに。好みの問題もあるでしょうが、分かりやすいので。 クオテーションは選ぶ クオテーションにはシングルだったり、ダブルだったり色々ありますが、使い分けておいたほうがよいでしょう。 変数の展開がないようであれば、シングルクオーテーションのほうがスマートでしょうし、展開があるのならダブルクオーテーションを使えばと。 ダブルクオーテーションを使うのにも意味があって、変数は「$RET」のようにクオテーションで囲まなくても動作はたいていするのですが、 echo "${RET
/bin/shの実体としてはash(dash)、bash、kshの採用例が多い。どのシェルもBourne shellの機能に加えて、拡張機能を提供する。 FreeBSDなどの*BSD系のOSは、ashを/bin/shとして使っている。ashはPOSIX.1(POSIX:2008)にいくらかのBSD拡張機能を取り込んだシェルだ。メモリをあまり消費せず、高速に動作し、ほかのライブラリに依存することが少ない。従って、rootやレスキューシステムのインタラクティブシェル、システムのシェルスクリプトといった場面で採用されている。 Mac OS Xはbashを/bin/shに採用している。FedoraやopenSUSEなどのLinuxディストリビューションもbashを/bin/shに採用している。LinuxディストリビューションでもUbuntuやDebian、Linux Mintなどは、高速に動作する
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く