FC2ブログ
こんにちは休日出勤
業務の7割はエクセルに向かって自分の書いたソースのテストやってるんではなかろうかという私の診断はこうなりました。

http://dame.dyndns.org/misc/llahp/?q=FxfcjmbLKifT7tv

あー Perlやりたい。AHPつーとあれでしょ3回生のとき習ったやつでしょ。そんなことより、エクセルの、セルの超微妙な大きさの変え方とか習っとくんだったなあ。早く色つける方法とか、スクリーンショット効率よく貼る方法とか・・・
スポンサーサイト



サブシェルとカレントシェル
注意)覚書ですので、読みやすさは考慮しておりません。


vi で以下を記述 a.sh と名づける
export HOGE="hogehoge"


コマンドプロンプトで以下を実施
$ bash a.sh

$ echo $HOGE

$ . a.sh

$ echo $HOGE
hogehoge

. はカレントシェルで実行のコマンド

vi で以下を記述 b.sh と名づける
#!/bin/sh

if [ -f $HOME/a ]; then
exec ls a;
else
echo not found;
fi


$ bash b.sh

だと、黒い窓は閉じないが、
$ . b.sh

だと、黒い窓は閉じる。

exec は、Cのシステムコールのexecシリーズといっしょ。
現在のプロセスと置き換える。
ようするに、bashがPID 1000で動いていて
exec を実行すると ls がPID 1000として動く。


サブシェルとカレントシェルの話だったのだが、途中 sh系の話になる。
「sh系のスクリプトは、ifと[の前後には必ずスペース」
とのこと。さらに、
「[と]はセットのコマンドです。[とtestと言うコマンドは実態はいっしょ」
とのこと。さらに、
if [ -f $HOME/a ]
then
exec hogehoge

は、
if [ -f $HOME/a ]; then
exec hogehoge

と書いても同じことらしい。 ls; ls とかのコマンドを連続して書くときの;と同じ感覚のようだ。 ];のところは。
ブログ検索

プロフィール

ビンゴ中西
Perlが好きである。
プログラミング言語のほとんどは独学。独学の過程で多くのプログラム仲間にも色々教わりました。

FC2カウンター

カレンダー

09 | 2007/10 | 11
- 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 - - -

ブロとも申請フォーム

この人とブロともになる

| ホーム |