分12コマンドラインツールの入出力ここまで,コマンドラインツールでよく使われるコマンドライン引数と設定ファイルについて説明しました。それ以外に重要なのは,データの入出力です。本節ではコマンドラインツールのデータ入出力にあたってのTipsや,利用すると便利なモジュールを紹介していきます。IO::Prompt::Simpleを使ったインタラクティブな入力コマンドラインツールを実行する際,途中でユーザーからの入力を受け付けたい場合があります。復旧の難しい処理(ファイル削除など)を行う前に,本当に実行してよいかユーザーに確認するなどです。IO::Prompt::Simpleを使うと,こういったケースに対応するコードをシンプルに記述できます。'ファイルの削除を実施します。input';}prompt関数の第1引数にはユーザーへのメッセージ,第2引数にはデフォルト値を指定します。ユーザーが何も入力せずに[Enter]を押した場合は,デフォルト値がpromptの戻り値として返ってきます。prompt関数の第2引数がスカラ値の場合はデフォルト値として扱われますが,ハッシュリファレンスを渡して細かな設定を行うこともできます。先ほどのコードのように確認メッセージにyes/noで答えてもらうようなケースでは,入力するデータを制限して次のように書くことができます。'ファイル削除を実施します。};詳しくは,IO::Prompt::Simpleのドキュメントを参照してください。本項では環境変数から入力を受け付ける方法を説明します。ここまで紹介したコマンドライン引数を使う方法,ファイルから設定を読み込む方法,標準入力からデータを読み込む方法を使い分けることで,ほとんどのユースケースに対応できます。そのうえであえて環境変数を使うメリットはなんでしょうか。一例としては,TERM変数やLANG変数など,OS環境の情報が入っている環境変数を取得できることが挙げられます。crontabで複数のコマンドの実行計画を定義している場合,冒頭で環境変数の設定を定義しておけば,すべてのコマンドでその設定を参照できます。レポート送信先メールアドレス(report@example.com)を参照できます。Service)環境では,実行するプログラムへ設定を渡す方法が環境変数に限られるケースがあります。この場合,否応なしに環境変数を使うしかありません。いったケースに対応するため,最近のコマンドラインオプション解析ライブラリでは,環境変数からオプション値を取得する機能がサポートされているものが多く,Smart::Optionsでも対応しています。}envメソッドを使うと,オプション値が指定されなかった場合に,「⁠env_prefixで指定した接頭辞_大文字化したオプション名」の環境変数(上記で言うとTEST_FLAG)をオプション値として取得するようになります。Smart::Optionsでは,コマンドライン引数と環境変数の両方で値が指定されていた場合,コマンドライン引数で渡されたもののほうを優先します。色付きの出力diffコマンドなどが良い例ですが,出力結果に適切に色を付けると見分けやすくなります。Perlでターミナルへの出力に色を付けるにはカラー変更のエスケープシーケンスを出力すればよいのですが,Term::ANSIColorを使えばエスケープシーケンスを使わずに色名の指定で同じことをできます。color('reset');color関数に色を渡すことで,以降に出力する文字列がその色になります。color('reset')を出力するまで色は変わったままになります。color('on_blue')のようにon_を色名に付けると背景色の指定になります。それ以外にもbold(強調⁠)⁠,blink(点滅⁠)⁠,under(下線)などを指定したり,256色に対応した色指定(ansi255)をしたりもできますが,これらは実行される環境によって機能しないこともあります。詳細はTerm::ANSIColorのドキュメントを参照してください。<続きの(3)はこちら。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。