電子書籍の厳選無料作品が豊富!

いつもありがとうございます。

今回、Z Shell(?)にて下記の内容で作成したいと思っております。
自身触ったこともない環境なのですが、アドバイスをお願いできないでしょうか。

■環境
・MAC OSX
USBにてスクリプトを持ち運び、実行する端末での入力情報を取得

■仕様
(1)当スクリプトを実行すると、GUI入力画面を表示。
 ∟ユーザ名を入力するテキストボックス
 ∟端末番号を入力するテイストボックス

(2)実行ボタンを押下時、「完了」とメッセージを表示。
上記入力値と「ホスト名」・「IPアドレス」・「MACアドレス」・「インストールされているプログラム一覧」を同ディレクトリにCSVに出力。(get.csv)

(3)次の端末で実行する場合、get.csvに追記していく

上記のようなスクリプトを作成したいのですが、当スクリプトは触ったことがなく、見当もついていません。
教えて教えてで申し訳ございませんが、どのようなく記述になるか教えて頂けませんでしょうか。

見当違いのお願いをしているかもしれませんが、ご確認宜しくお願い致します。

A 回答 (4件)

たとえば



//get.sh ここから
#!/bin/sh

out="get.txt"
hostname >> $out ;
ifconfig | grep inet >> $out;
ifconfig | grep ether >> $out;
pkg_info >> $out;
// ここまで

みたいなかんじのget.shをつくって

chmod 755 get.sh

で実行属性をつけておき

./get.sh

で実行する。

ちなみに、いわゆるカンマ区切りのcsvにするのは難しいですよ
なにせ、ホストごとにIPアドレスがやMACアドレスは複数存在する可能性があり
インストールされているプログラムなんてそれこそ大量にあるのだから
    • good
    • 0

No.2です。


リダイレクトという言葉をどのような意味に使われているの分かりませんが、
http://ja.wikipedia.org/wiki/リダイレクト_(CLI)

http://rat.cis.k.hosei.ac.jp/article/linux/bash_ …
を参考にしてください。

さて、No.1で書かれているようにhostnameやifconfigで出力される情報を加工して、必要な形式で出力すれば良いわけです。
多分カレントディレクトリにファイルが置かれるのが普通だと思いますので、そのまま追記すればよいと思います。
加工は、達人の方はsedなどでやるのでしょうが、私自身sedはよく分からんので私なら全体をRubyで書いてしまいますが。

RubyやPythonを使うのならCSVではなくYAMLで出力してしまった方が簡単です。表ソフトに持ち込むのならタブ区切りの方が簡単だと思いますが。
    • good
    • 0
この回答へのお礼

いろいろな情報を教えて頂いて助かりました!
ありがとうございます。
少しでも運用として使えるよう参考にしてやってみます
ありがとうございました!

お礼日時:2012/07/06 14:14

>(1)当スクリプトを実行すると、GUI入力画面を表示。


この段階でshellだけでは無理で何らかのGUIを操作できるプログラムを呼び出す必要があります。

Xcodeを使ってObjective-Cで作るのが正攻法ですが、AppleScriptやRubyも使えます。10.6以上で64bits機を対象にするのならMacRubyで作るのも手だと思います。(以上XcodeでGUIを作成する場合)

もう一つの方法として、Platypus(これ自体はScriptで簡単なアプリケーションが作れる)で紹介されている
http://sveinbjorn.org/files/manpages/PlatypusDoc …
cocoaDialogを使うということもできるようです。(実はまだ使ったことはない)
http://mstratman.github.com/cocoadialog/
こちらの方が簡単なように思います。
他にも、AppleScriptなどから呼ぶことができるGUIもあったように思います。

2),3)は1)ができれば問題ないでしょう。

shellって結構書くのが大変で私にはよくわかりません。
RubyやPython, Perlなどのスクリプト言語の方がshellより簡単で高機能ですので、そちらで書かれることをお勧めします。

この回答への補足

ご回答いただき、ありがとうございます。
入力フォームは別に作成する必要あるのですね。
イメージは理解しました。

2)のコマンドのリダイレクトなのですが、”実行ファイルと同じディレクトリに挙げた情報をCSVとして作成”するシェルなど、教えていただけたりできますでしょうか。
ご無理を申し訳ありません。

補足日時:2012/07/04 10:23
    • good
    • 0

シェルの特質上GUは微妙ですね


CUIではだめなのでしょうか?

unameやらifconfigやらをファイルにリダイレクトすればよいかと。

インストールされているプログラム一覧はなんともいえないです
pkg_infoレベルでよいのでしょうか?

この回答への補足

ご回答いただき、ありがとうございます。
2)のコマンドのリダイレクトなのですが、”実行ファイルと同じディレクトリに挙げた情報をCSVとして作成”するシェルなど、教えていただけたりできますでしょうか。
ご無理を申し訳ありません。

補足日時:2012/07/04 10:22
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!