2005年4月21日

[vine-users:071631] Re: 端末からの入力をすべて

長南です。

藤田さんのスクリプトにしろ、谷村さんのスクリプトにしろ、事実上
シェルスクリプトによる簡易シェルを作っているわけですね。
最初に打ち込まれた単語が「検索」「時刻合わせ」などのときは、独自の
処理をし、それ以外のときは bash に渡してしまうという。

大西さんのメールより [vine-users:071626]
>
> NIDAさんは、

>
> >というようにコマンドとパラメータを 1 度の入力でできるなら、
> >
> だそうなので、
> read i p1 p2 p3 p4
> とでもする訳ですね。

変数は 2 個あれば足りるのではないでしょうか。read への入力は、
空白で区切られた最初の単語以外、二番目の変数に入るはずですから。

藤田さんと谷村さんのスクリプトを混ぜ合わせて、シェルらしくなるように、
ちょっといじってみました。

$ cat minish
#!/bin/sh
while true
do
read -p "[minish]> " cmd args
case $cmd in
検索)
eval egrep $args;;
時刻合わせ)
su -c "/usr/sbin/ntpdate ntp.hoge.ne.jp";;
終了|exit)
echo "終了します"
exit;;
*)
eval $cmd $args;;
esac
done

でも、このシェルではコマンドラインの補完や履歴が使えないし、矢印キーも
使えない。あんまり便利じゃありませんね。元質問者の方の希望を実現する
方法としては、alias を使うのが一番現実的だと思います。すでにやって
いらっしゃるように。

--
長南洋一

投稿者 xml-rpc : 2005年4月21日 22:21
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/13432
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。