32nd Diary

過去の日記
today: , yesterday: , total:
2006年
8月
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

めーるあどれす:ruby -r base64 -e 'puts Base64.decode64("dGFrQG5vMzIudGs=")'


トップ «前の日記(2006-08-26 (Saturday)) 最新 次の日記(2006-08-28 (Monday))» 編集

2006-08-27 (Sunday) [長年日記]

起きたら15時でした...

mjd-!!

しかも,二度寝したら21時でした.

そのうち,時計を見たら3分後なんだけど,実は12時間と3分の時間が経っていた,なんてことがありそうでコワイです...

Tags: Life

ググるという言葉を耳にするとゼロックスを思い出す

コピーすることを xerox って言ったりするんだよね.

嘘だと思うなら辞書で xerox という項目を引いてみてくださいな.

Tags: Google Web

環境変数を切り替えるシェル関数 # 未完成

selectを使って環境変数を切り替えます. selectを使うとユーザに項目を選択させるスクリプトが簡単に書けます.

例ではCVSROOTを切り替えるものを作ってみました.

function set.cvsroot {
  PS3='select CVSROOT from above:'
  ROOTS=(
    ':pserver:anonymous@tdiary.cvs.sourceforge.net:/cvsroot/tdiary'
    ':ext:takano32@no32.tk:/path/to/cvs/repository'
    ':pserver:takano32@no32.tk:/path/to/cvsrepos'
  );
 
  select ROOT in ${ROOTS[*]}; do
    export CVSROOT=${ROOT}
    break
  done
}

ほんとうはシェルスクリプトにしようと思ったのだけれど, 子プロセスで親プロセスの環境変数を変更できないので, シェル関数として書きました.


さらに抽象化し,EDITOR, PAGER, LANGなどの切り替えにも使おうと, 以下のようなコードにしてみたのだけれど,思い通りにはなりませんでした.

function set.env {
  ENV_NAME=shift 1
  ENV_VALUES=$@
  PS3="select ${ENV_NAME} from above:"
 
  select ENV_VALUE in ${ENV_VALUES[*]}; do
    eval ${ENV_NAME}='$'${ENV_VALUE}
    break
  done
}
 
function set.cvsroot {
  ROOTS=(
    ':pserver:anonymous@tdiary.cvs.sourceforge.net:/cvsroot/tdiary'
    ':ext:takano32@no32.tk:/path/to/cvs/repository'
    ':pserver:takano32@no32.tk:/path/to/cvsrepos'
  );
  set.env "CVSROOT" "${ROOTS[*]}"
}

配列の変数ってそのまま渡すことってできないんだっけ...?

Tags: UNIX sh
[]
本日のPingbacks(全0件)