作例から学ぶスクリプト作成のコツ [6/27更新]

 面倒な作業を繰り返し行っていることに気が付いたとき、多くのユーザーはその作業を肩代わりしてくれるツールがないか探すことだろう。しかし、出来合いのツールが自分の要求に完全にマッチするとは限らない。そこでそのような場合は、OSSの精神に則り「無いものは自作する」というのはどうだろうか。プログラミングの経験がなくても、シェルスクリプトなら普段利用しているコマンドを組み合わせて比較的簡単に作ることができる。あるいは、これを機に何かスクリプト言語を学んでみるのよいだろう。以下で紹介する記事は、あなたがスクリプトを作成するときに、有用なヒントを与えてくれるはずだ。

Pythonを用いたCGIスクリプティング入門 2008年06月06日
 Web開発者にCommon Gateway Interface(CGI)スクリプティングについての質問をすると、おそらく返ってくる大多数の回答は「Perlを使っています」というものだろう。このようにかなり以前からCGIスクリプティングの世界を席巻している言語がPerlであるのは確かだが、それ以外の選択肢がない訳でもなく、むしろ Perlより優れているはずのツールもいくつか存在しているのである。よって本稿では1つのチュートリアルとして、高速かつ多機能でマルチプラットフォームに対応したPythonを用いたCGIスクリプティングの世界を簡単に紹介することにしよう。 [記事全文]

SCSH(Scheme Shell)スクリプト入門 2008年05月27日
 先月Daryl Leeが「It’s time to learn Scheme」という記事の中で、C++のコードを生成する例を挙げてScheme言語の紹介をしていた。本稿では、SCSH(Scheme Shell)で書いた実用的な例――複数のファイル内のテキスト検索/置換、ファイルのソート、CSVファイルからHTMLファイルへのデータ変換――を紹介する。 [記事全文]

Korn――高機能なシェル 2008年05月12日
 Linuxのシェルについてはおそらくご存じのことだろう――LinuxでKonsoleやxtermなどの端末ウィンドウを開いてコマンドを入力するとき、文字を受け付けているのが他でもないLinuxのシェルだ。あるいはファイルにコマンドを書き込んで、実行可能にして、実行するということをしているのなら、あなたはもう立派なシェルプログラマだと言えるだろう。しかし利用可能なシェルには様々なものがあって、それぞれに少しずつ違った特徴があるということはご存じだろうか。そのようなシェルの中で個人的に私が気に入っているのがKornシェルだ――この記事を読み終わる頃には、あなたのお気に入りにもなっているかもしれない。 [記事全文]

CLIマジック:ANSIエスケープシーケンスを使って端末に時計を表示する 2008年01月24日
 Linux端末を使っているとき、時刻を知るためだけにdateコマンドを実行していることが私にはよくある。これをもっと簡単にするため、端末画面の右上隅に常に時計が表示されるようにするスクリプトを作成してみた。 [記事全文]

CLIマジック:ディレクトリの一覧表示をカスタマイズする小スクリプト 2007年12月26日
 lsを実行する場合、ディレクトリの一覧から特定のファイルを探し出すと共に、そのファイルが存在するディレクトリの状況も確認したいことがある。ls の出力をgrepにパイプしてもよいのだが、それではディレクトリ全体を表示して条件にマッチするファイルだけ表示の色を変えたりはできない。今回は、そうした形でlsの結果を表示できる簡単なスクリプトを作成しよう。 [記事全文]

カレントディレクトリ名を取得する4つの方法 2007年11月19日
 シェルスクリプトを書いていると、カレントディレクトリ名は必要だが、pwdコマンドから返される完全なパスは必要ないことがよくある。本稿では、カレントディレクトリだけを抜き出す方法を4通り紹介する。 [記事全文]

Samba共有ファイルを使用中のマシンがわかるスクリプト 2007年10月12日
 Linuxユーティリティを組み合わせて使えば、ネットワーク上の誰がどの共有ファイルシステムを利用しているかがいつでもわかるので、システムのアップデート時には彼らにログオフを依頼することができる。 [記事全文]

シェルスクリプトで引数をパースする 2007年07月20日
 自作のbashのシェルスクリプトで何らかのオプション、すなわちスクリプトの動作を変更するためのフラグを使えるようにしたいとしよう。このような場合、${#} を使って与えられた引数の個数を取得したり、${1:0:1}を使って最初の引数の最初の文字が「-」かどうかを判定したりするなど、直接自分でパースすることもできるが、自分でパースする場合には、与えられたオプションが何であるかとか、引数を取っているかどうかとかを確認するためにif/thenやcaseなどを使ったコードを自分でさらに書き足す必要があるだろう。 [記事全文]

OSの再インストール後にシステム設定を復元する簡単なスクリプト 2007年06月22日
 オペレーティング・システムの再インストールは決して楽しい作業ではないし、喜んで取り組みたい作業でもない。しかし、やむを得ず再インストールしなければならないこともある。その場合、再インストール後にシステム設定やダウンロードしたアプリケーションを復元する必要があるが、これも結構時間のかかる作業だ。そこで、復元作業を多少とも楽にしようとシェル・スクリプトを作ったので紹介する。 [記事全文]

Webサイトをトラッキングする簡単なスクリプト 2007年06月19日
 多くのWebサイトにはコンテンツが更新されたことを知らせてくれるRSSフィードやニュースレターの購読機能があるが、残念ながら、依然としてこの機能を持たないWebサイトも相当な数にのぼる。そうしたWebサイトの更新は、どのようにして知ればよいのだろうか。そこで今回は、このタスクを自動化してくれるシェルスクリプトを作ることにする。 [記事全文]

Linuxでスクリーンキャストを作成するには 2007年03月23日
 何らかのハウツーを示す際、一連のスクリーンショットを順番に写し出すビデオという形で単純なスクリーンキャストを用意しておくだけで、言葉でいくら説明しても説明できないようなことを簡単に説明できることも多い。Linuxといくつかのオープンソースのアプリケーションを利用すると、そのようなスクリーンキャストの作成を簡単に行なうことができる。 [記事全文]

改訂版: LinuxノートPC上でサスペンド/ハイバネーションする方法 2007年02月20日
 昨年6月、私は「LinuxノートPCのサスペンドとハイバネーション」という記事を書いた。以来、状況がいくつか(嬉しいことに良い方向で)変わったため、再びこのテーマを取り上げることにした。また、前回の記事の中で書いたサスペンド用のシェルスクリプトについての改善案を何人かの読者からいただいたので、今回の新版でそれらの提案を取り入れた。 [記事全文]

コマンドラインからでもブラウザからでもWgetでダウンロード 2007年01月16日
 Linuxユーザであれば、ほとんどの人がGNU Wgetについてご存じのことと思う。しかし、wgetコマンドにURLを引数として渡して個別のファイルをダウンロードするという使い方以外にも、デスクトップアプリケーションと一緒に活用する方法もあるということはご存じだろうか。少々準備が必要ではあるものの、Wgetをお気に入りのブラウザやデスクトップアプリケーションと簡単に統合することができるのだ。また、スクリプトの中でWgetを使うことによって、カテゴリごとにバッチ方式でダウンロードを行なったり、耐故障性を持たせたりすることもできる。この記事では、Wgetをあなたの思い通りに働かせる方法を紹介する。 [記事全文]

YouTubeビデオのDivXおよびXviD形式への変換法 2006年09月01日
 昨今話題のYouTubeのビデオクリップだが、かく言う私もこのサイトの中毒患者の1人だ。しかしながら、YouTubeのビデオ再生方式については少々注文を付けたい点がある。私の希望としては、お好みのビデオをスタンドアローン型のDVD/DivXプレーヤで再生したいのだ。またサイトにあるFlash形式のビデオをMPlayerで再生する場合も、早送りや巻き戻しができないという問題がある。よってここに私は、YouTubeのビデオクリップをDivXもしくはXviDフォーマットに変換する作業に着手することを決意した。以下は、具体的な操作手順である。 [記事全文]