shでもcshでも「-e」 を使うらしい。
無い場合は「!」
ディレクトリーに絞るならば「-d」ファイルならば「-f」
例えば 「~/tmp/up」というディレクトリーをフラグにした場合
if [ ! -e ~/tmp/up ]; then
mkdir ~/tmp/up
doo=create
#
else
doo=exist
#
fi
echo $doo
のようにかけばいいようだ。
cshやtcshの場合
set DIR1 = "~/tmp/up"
if (! -e $DIR1) then
set doo=create
else
set doo=exist
endif
echo $doo
となる。
なんでcsh系と思うかもしれないが
FreeBSDの場合sh系を対話シェルにするとIMEで日本語入力ができないので
ちょっとしたファイル検索をターミナルからしようとすると不便だからだ。
そしてlogin時にいろいろやりたい場合は
.loginでかくなり
「$TERM」で判別する等を.cshrcで行う等すると都合が良い。
実際X上でxterm等のコンソールプログラムを実行する時も
対話シェルがtcshならば.cshrcを実行する。
以下はxtermとjfbtermとその他をわけたもの
switch ( $TERM )
case xterm*:
#echo "hello xterm"
breaksw
case jfbterm*:
echo "jfbterm だ。"
echo ""
echo "今から FreeBSD 8.0をインストールするけどいいよね、"
echo "はい(Y) いいえ(N)"
set ques = $<
if ( $ques == "n" || $ques == "N" ) then
sleep 1
echo "答えは聞いてない。"
endif
breaksw
default:
echo $TERM
breaksw
endsw
【関連する記事】