2006年7月 4日

[linux-users:106718] Re: bash サンプル


Ishioka様

  ご教授を感謝致します。

 てっきり, read, fopenなどをつかうかと思ったが、
考えすぎました

                
--- "L.Takashi ISHIOKA"
からのメッセージ:
> >> On Mon, 3 Jul 2006 19:15:19 +0900, had doc
> said:
>
> had>  #foo.sh -f FILE -a AAA -b BBB -c CCC
>
> had>
> つまり、FILEというファイル(なければ作成する)に
> had> コマンド引数で指定されたAAA, BBB,
> CCCを追加しようと
> had> 考えております。処理後FILEのなかは
>
> had>  #cat FILE
> had> parameter1="AAA"
> had> parameter2="BBB"
> had> parameter3="CCC"
>
> 本当は何をしたいのかはよくわからないので
> 十分かは不明なのですが
> 単純なのならいつも新しく作るようにしてリダイレクトでい
いんじゃないですか?
>
>
> (例)
> % echo "parameter1=\"${a:-}\"" >> $f
>
> 特定の行を置き換えたりするのは sed や ed や ex や
> awk や perl などあた
> りで.
> (例)
> % sed -e 's/^parameter1=.*$/parameter1=\"AAAA\"/g'
> これはファイルの中身を置き換えるわけではありません.
>
> で 枯木も山の賑わいということでいい加減な例:-)
> エラーチェックもすごくて抜きなので 注意すべし.
>
> #!/bin/bash
>
> CMD=`basename $0`
> usage () {
> echo "Usage $CMD -f outputfile -a param1 -b param2
> -c param3"
> exit 1 ;
> }
>
> set -- `getopt f:a:b:c: $*`
> if [ $? != 0 ]; then
> usage ;
> fi
>
> for i do
> case "$i" in
> -a)
> a=$2; shift; shift;
> ;;
> -b)
> b=$2; shift; shift;
> ;;
> -c)
> c=$2; shift; shift;
> ;;
> -f)
> f=$2; shift; shift;
> ;;
> esac
> done
>
> if [ -z "${a:-}" -o -z "${b:-}" -o -z "${c:-}" -o -z
> "${f:-}" ]; then
> echo "error" ;
> usage ;
> fi
>
> if [ -f ${f} ]; then
> sed -i "s/^parameter1=.*\$/parameter1=\"$a\"/" $f
> sed -i "s/^parameter2=.*\$/parameter2=\"$b\"/" $f
> sed -i "s/^parameter3=.*\$/parameter2=\"$c\"/" $f
> else
> touc ${f}
> echo "parameter1=\"$a\"" >> ${f}
> echo "parameter2=\"$b\"" >> ${f}
> echo "parameter3=\"$c\"" >> ${f}
> fi
>
> exit 0 ;
>
> --
> (ishi)
>
>
>

--------------------------------------
Let's start Yahoo! Auction - Free Campaign Now!
http://pr.mail.yahoo.co.jp/auction/


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




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