testコマンドだけ使ってif文を使わない方法

まずは、if文の確認。
ファイルの存在チェックする関数をif文を使って作ります。

~$ f(){
> if [ -f file1 ];then
>   echo FOUND
> else
>   echo NOT FOUND
> fi
> }
~$ 

file1という名前のファイルが存在していたら、FOUND表示。存在していなかったらNOT FOUNDを表示をする関数です。

使ってみます。file1が存在しない時。

~$ ls
~$ f
NOT FOUND

file1が存在する時(touchで作成)。

~$ touch file1
~$ ls
file1
~$ f
FOUND

関数fは、testコマンドを使うとこのように書き換えできます。

~$ ls
~$ if test -f file1;then echo FOUND;else echo NOT FOUND;fi
NOT FOUND
~$ touch file1
~$ if test -f file1;then echo FOUND;else echo NOT FOUND;fi
FOUND
~$ 

&&や||を使えば、if文自体を省略できます。

Trueかどうかのチェック。

~$ ls
file1
~$ test -f file1 && echo FOUND
FOUND

Falseかどうかのチェック。

~$ test -f file1 || echo NOT FOUND

&&と||を2つとも使えばif~else~fiと同じことができます。

~$ f(){
> test -f file1 && echo FOUND || echo NOT FOUND
> }
~$ 

使ってみましょう。

~$ ls
~$ f
NOT FOUND
~$ touch file1
~$ f
FOUND
~$ 

コメント

タイトルとURLをコピーしました