ディレクトリが空ディレクトリかどうかによって条件分岐を行いたいということがよくあると思います。たとえば「対象のディレクトリがファイルやディレクトリを有しているとき、その中身をすべて削除する」という処理は次のように書くことができます。 directory=/hoge/hoge if [ -n "$(ls $directory)" ]; then rm -r $directory fi -nは引数が空文字以外ならtrueを、それ以外ならfalseを返します。対象のディレクトリが空のときlsは何も返さず、したがってそれを文字列化した"$(ls $directory)"が空文字となるため、[ -z $(ls $directory) ]がtrueとなりifの本体が実行されるというわけです。 ちなみに-zは-nの逆、つまり引数が空文字ならtrueを、それ以外ならfalseを返します。次の例ではディレク