GNU/Linux >> Linux の 問題 >  >> Linux

Linux –フォルダにファイルがあるかどうかを調べてそれに応じて終了する方法(Ksh)?

私はKSHを持っています(バッシュではありません )ファイル数チェックでプリエンプトしたいスクリプト。 「EMPTY」を印刷したいファイルがない場合は、終了します。それ以外の場合は続行します。

問題は、ファイルカウントを実行するときに、空の場合に壊れてしまうことです。

コード:

###################################################
# Test to see if files exist in Drop Folder
###################################################
CONTENTS=$(ls ${gp_path}ALLSTUFF*.zip)
if [[ ${#CONTENTS[@]} -eq 0 ]]; then
    print 'EMPTY'
    exit 0
else
    print 'NOT EMPTY'
fi

空でない場合は機能します。

空の場合、以下のエラーが発生し、システムが壊れます。 EMPTYを報告して0を終了するだけにしたい:

エラー:

/nas/Opt/databox/folder/ALLSTUFF*.zip not found

何が間違っているのですか?

試行#2

これも試しましたが、同じ結果が得られました:

if [ "$(ls ${gp_path}ALLSTUFF*.zip)" ]; then
    print 'NOT EMPTY'
else
    print 'EMPTY'
    exit 0
fi

承認された回答:

2>/dev/nullを使用すると、エラーメッセージを非表示にすることができます。 ls内 。

次に、$CONTENTSかどうかを確認できます -zで空です

CONTENTS=$(ls -d -- "${gp_path}ALLSTUFF"*.zip 2>/dev/null)
if [ -z "$CONTENTS" ]; then
    print 'EMPTY'
    exit 0
else
    print 'NOT EMPTY'
fi

Linux
  1. Linuxでトップディレクトリとファイル(ディスク容量)を見つける方法

  2. Linuxで変更日時に基づいてファイルを検索およびソートする方法

  3. Linux でファイルとディレクトリを親フォルダーに移動するにはどうすればよいですか?

  1. LinuxでSUIDおよびSGID権限を持つファイルを検索する方法

  2. Linux –システムに搭載されているハードディスクを確認する方法は?

  3. Linuxで隠しファイルをchmodおよびchownする方法は?

  1. findおよびduコマンドを使用してLinuxで大きなファイルを検索する方法

  2. Linux で空のディレクトリとファイルを見つけて削除する方法

  3. フォルダーにファイルがあるかどうかを確認し、それに応じて終了する方法 (KSH)