パスワードを忘れた? アカウント作成
212940 story
入力デバイス

シェルスクリプトに香辛料 64

ストーリー by reo
PIPES とか 部門より

○○(と/に)香辛料言いたいだけじゃないかと 曰く、

GUI のアプリケーション開発は時間とお金がかかる。Unix 系のスクリプトは CLI ベースで走るきわめて洗練されたプログラミング言語だ。設計は簡単ですぐに作れるが Unix コマンド同様ユーザフレンドリーというわけではない。Linux / Unix で走る bash は、対話式で使いやすいグラフィカルなインターフェイスで実行できるスクリプトを書くツールを提供している。このようなピリリとした趣を与える香辛料として、Linux / Unix プラットフォームでどんなツールを使ってますか?

タレコミ人がリンク先で紹介されている tput と zenity コマンドを RHEL で試したところサンプルどおりに動作した。自分で使う分には CUI で十分なのだが、自作スクリプトをオペレータに依頼して実行してもらうような際にはこのような GUI も有効かもしれない。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 香辛料の出典? (スコア:4, 参考になる)

    by Anonymous Coward on 2010年04月21日 11時20分 (#1751974)
    tputってなんだろう?と思ってググったらtput を理解する [ibm.com]ってIBMのサイトが出てきて、ここに

    UNIX シェル・スクリプトに少しスパイスを加える

    って書いてあった。
  • メンテ用 (スコア:3, 興味深い)

    by misty_rc (2036) on 2010年04月21日 11時03分 (#1751965) 日記

    tputは社内サーバのメンテナンス用スクリプトで使ってます。
    自分だけならいいんですけど、他人にもオペしてもらう必要を考えると
    わかりやすいインターフェイスはある程度必要ですからね。

    昔は実行時に引数を与える方法にしてましたが、しょっちゅう間違う人が
    出てやめました。

    tputの難点はめったに書くことがないから、その都度書き方を忘れることですかね

    • Re:メンテ用 (スコア:2, 興味深い)

      by kabukiage (33873) on 2010年04月21日 12時29分 (#1752033)
      昔、他人に使わせる使うシェルスクリプトを書きましたが、今から実施される処理の内容を表示した上で、間違いないかどうか確認させるために
        実行してよければ『1』と入力しEnterキーを押してください。
      ってメッセージを出したら「1の前後の括弧も入力する必要がありますか?」って真面目に質問されたことがあります。さすがに萎えました。
      次に機会があったらtputも使ってみようかな。
      親コメント
      • Re:メンテ用 (スコア:2, すばらしい洞察)

        by Anonymous Coward on 2010年04月21日 15時56分 (#1752179)
        1つの文章中で異なった表現が混在しているのが、誤解発生の原因では?
        「『1』キーを押し、続いて『Enter』キーを押してください。」
        と書けば、その質問はおそらく発生しなかったでしょう。
        親コメント
      • Re:メンテ用 (スコア:1, 参考になる)

        by Anonymous Coward on 2010年04月21日 13時23分 (#1752088)
        > 「1の前後の括弧も入力する必要がありますか?」
        ヘルプで command [foo] "text" としか表示されなくて
        [ ] や " " が実際に必須なのかどうかがわからないのと似たようなものかと
        # んで勝手に " " を抜かして空白入りパスとかでこけるんだこれが
        親コメント
      • by Anonymous Coward
        あらゆる質問は「はい」「いいえ」のいずれかで答えるようになっていないといけないのです

        なお、押されるのは常に「はい」です
        • by Anonymous Coward
          すみません,キーボードに「はい」というキーがないのですが…
    • by nyan (1790) on 2010年04月21日 11時24分 (#1751977)

       このtputのsample見てたら、昔、MS-DOSで作ってたメニューを思い出した
       お客さんにやってもらうことをメニュー化したんだった
       見た目そっくり

       *nixでも使うという発想は無かったなあ
       使ってみよ

       コマンドを直接叩かせるのは怖いから・・・

      親コメント
    • by tmt (39622) on 2010年04月21日 12時13分 (#1752015)

      開発して、運用を請け負っていたシステムを、お客が運用を自分で引き継ぐってことになったときに、
      シェルスクリプトのオプションや、ファイル選択部分をselectで書き直しました。
      GUIじゃぁないけど、選択式メニューは簡単にできます。それ以後使ったことないけど。

      でも思えば、あの時からbash依存のスクリプトを書くことに抵抗がなくなった気がする。

      親コメント
  • by genkikko (36404) on 2010年04月21日 11時35分 (#1751982) ホームページ 日記

    誰もつっこんでないみたいですけど、

    ×サンプルどうり

    ○サンプルどおり

  • Windowsだったら (スコア:2, 参考になる)

    by take-ash (28862) on 2010年04月21日 23時26分 (#1752444) ホームページ

    WindowsだったらHTA [microsoft.com]も結構お手軽。
    GUI部分はHTMLで書いて内部の動作はJavaScriptもしくはVBScriptで書ける。
    普通のHTMLとは異なりクリップボードとかローカルファイルにもアクセスできる。
    実行できるのはIEのみでFirefoxとかOperaでは動かないけどね。

    --
    # SlashDot Light [takeash.net] やってます。
  • by Anonymous Coward on 2010年04月21日 10時56分 (#1751959)
    マシンにまで sugar やら salt やら spice やらをかけまくるとは、なんであんな体格してるのかがしのばれるよ、まったく
  • by coffe_ata (31369) on 2010年04月21日 11時13分 (#1751970) 日記

    稀にPerl/tkを使いますが、大抵Webベースでゴリゴリ書いてます(ほとんどCUI環境だし)。
    # ってこういう話と違う?

  • 何も使わない (スコア:1, おもしろおかしい)

    by Anonymous Coward on 2010年04月21日 11時50分 (#1751995)

    たまの失敗ゎ スパイスかもね

    • by Anonymous Coward
      だからこの場合、引数を間違えるといった、
      ユーザーの失敗を減らすために、あらかじめスパイスを入れて置くのですね。

      # ひらめく アイデアトッピング しちゃおう
  • by Anonymous Coward on 2010年04月21日 10時57分 (#1751961)
    Windows で言うところの WSH 的なものなんでしょうけど
    Tcl/Tk とかそこいらじゃないんすか
  • by Anonymous Coward on 2010年04月21日 11時01分 (#1751963)
    > GUI のアプリケーション開発は時間とお金がかかる。

    そういう話はよく聞きますが、GUIのアプリケーションを作るスキルを十分に持ってないのが原因だと思うんです。
    • by Angelica (23122) on 2010年04月21日 11時37分 (#1751984) 日記

      極端な話、printf()とscanf()、あとはargv[]の使い方が分かれば作れるCUIと、やれウィンドウの生成が、イベントハンドラが、GUIのツールキットが…とやらなきゃいけないGUIでは、やはりGUIの方が時間がかかると思うんですが。

      #CUIでとりあえず動くアプリを作って使う→アプリを展開することになったらGUIラッパー作る が基本ですよね

      親コメント
      • by Anonymous Coward

        そのCUIでGUIと同様の「ゆーざーえくすぺりえんす」を提供できるんですか?
        そのレベルのものになって、初めてコストが比較できます。

        • gccのフロントエンドをGUIにして、CUIと同程度の「ゆーざーえくすぺりえんす」を提供することは困難だ。

          親コメント
          • by Anonymous Coward

            clのフロントエンド(Visual Studio)にはいつまでたっても勝てないということですね、わかります。

        • by Anonymous Coward

          何言ってんのこの人。
          タレコミや元ネタを理解しての発言ですかね?

        • by Anonymous Coward

          コストが限定されると動きすらしないGUI vs. 最低限何とかなるCUI/CLI という話じゃないの?

          バックヤード向け管理プログラムにどんな「ゆーざえくすぺりえんす」が必要なのか、必要性を経営者に訴えて開発費を捻出させ、その結果どういった利益を出したのか、ご高説を伺いたいところですな

      • by Anonymous Coward
        VisualBasic相手にそんなこといえるのか?
    • > GUIのアプリケーションを作るスキルを十分に持ってないのが原因だと思うんです。
      そもそも根本的に異なる考え方だし、想定されるユーザーも異なるから、比較するメリットはあんまり無いけど、
      一応言っとくと良いGUIってのはCUIライクなキー操作によるUIも包含するものだから開発コストが GUI > CUI となるのは当然。

      それより、開発ってプログラミングだけだと思ってる?スキル云々だけで語れるのはPGレベルだけであって、
      厄介かつスキルがあってもどうにもならなかったりするのはPG以外の部分。
      ここが素人(&一部業界人)になかなか理解されない所。
      開発の全てを決定づける重要さ、影響度の大きさで言えばPGのコストは年々ゼロに近づいていると言っても過言じゃない。

      親コメント
      • CUI=Command User Interfaceだと思ってる人にとってはCUI≒CLIでしょう。CUI=Character User Interfeceだと考える人は「CLIとCUIは結構違うぞ」と思うだろうし。

        カーソルキーでメニュー項目を選んでリターンを押せばう動く(FreeBSDのインストーラーとかそんな感じではなかったかな)はマウスも使わないしグラフィックスも使わないャラクタベースだけどほぼGUIみたいなもんですね。

        親コメント
      • by Anonymous Coward

        > 一応言っとくと良いGUIってのはCUIライクなキー操作によるUIも包含するものだから
        タレコミにはちゃんとCLIって書いてるのになぜかみんなCUIの話ばかりしてるんだよね。
        ユーザーが目の前にいるとは限らないんだからちゃんとバッチ処理もできるようにしてくださいお願いします。

    • とりあえず,GUIのほうがCUIより遥かにテスト工数が大きいことは自明なんでは?
      『作る』の意味とか定義が,人によって異なるようなので,作るものの定義を明らかにしないとまずそう.

      # フリーソフト作る程度か,信頼性求められる物作るかで,かけるパワーは変わりますよね?

      ## 今回は,CUI→GUIにするものがどういうアプリか,で議論が変わるのかしら?
      親コメント
    • by Anonymous Coward on 2010年04月21日 20時50分 (#1752368)

      某大学の情報工学科でプログラミングを教えていますが、今でも演習はCLIベースです。
      演習室には最新のMacが並んでいますが、演習自体はターミナルとEmacsで行います。:-)

      GUIよりもまずは基本的な原理をわかってほしいということもありますが、私を含めた
      多くの教員がGUIを使った開発経験に乏しいのも確かですね。最近の学生にとっては
      CLIベースのソフトウェアは半完成品のような印象を与えるみたいで、いまひとつ演習に
      身が入らない人がそれなりにいるのは確かなので、今後のカリキュラムは何とかせねば
      とは思っています。

      親コメント
    • by Anonymous Coward
      ・CUIやCLIの作成のスキルはあるがGUIのがほぼ皆無で大昔の知識しかない
      ・見栄えのいいGUIに慣れてしまい、それしか念頭にない
      んじゃないかな。
      少なくとも俺様は今となっては表示やオプションてんこもりのCLIや、cursesでCUIを作るより、GUIビルダーでGUIでっちあげるほうがラク
      cursesで数独なんてやりたくねえ
      • cursesとかを使ったCUIよりビルダーのあるGUIの方が楽なのは同意ですが、CLIとGUIならCLIの方が圧倒的に楽でしょう。
        CLIならバッチファイルやshellスクリプトから呼ばれるわけなんで、それらで実現できる部分を除いた単機能+α(引数のバリデートとメッセージなど)程度で済むけど、
        GUIはバッチファイルやshellスクリプトなどで簡単にできることまで含めて機能を実装して、さらに表示部分も作る必要があるんで、明らかに実装コストがかかると思いますが。
        仕様書作成にかかるコストもぜんぜん違うし、仕様書レビューのコストや受け入れテスト時のバグ報告の件数もぜんぜん違います。
        GUIだとどうでもいい感想レベルのフィードバックや「こういう操作できそうに見えるのにできない」「ボタンの名前やサイズを変えてほしい」みたいなバグ報告を受けやすいので、そういう点でも面倒です。
        親コメント
      • by Anonymous Coward

        てめえnethackディスってんのかあコラw

  • by Anonymous Coward on 2010年04月21日 12時20分 (#1752024)

    まあ、この手の話題が日本語で出ること自体稀なんで
    こういう記事が出ること自体喜ばないといかんのだけど。

    あとzenityってbashが提供しているもんなのか?
    gnomeのくくりだとばっかり思ってたさ。

  • by Anonymous Coward on 2010年04月21日 13時42分 (#1752114)
    WIN で自分で作ったコマンドプロンプト用の CUI プログラムは、
    引数なしで実行するとヘルプとして使い方を表示するようにしてあるのだが、
    請われてこれをリリースするといきなりダブルクリックする人が続出。
    「一瞬黒い画面が出てすぐ消えるけど所望のことが出来てない」と
    不評だったなぁ。
    • by Anonymous Coward
      起動メニューをbatで書くと吉
  • by Anonymous Coward on 2010年04月21日 16時18分 (#1752194)
    参照は小粒でもぴりりと辛い。
typodupeerror

「科学者は100%安全だと保証できないものは動かしてはならない」、科学者「えっ」、プログラマ「えっ」

読み込み中...