test -s でファイルサイズを確認する
このステップでは、test
コマンドに -s
オプションを指定して、ファイルが存在し且つ空でないことを確認する方法を学びます。test
コマンドは、条件式を評価するために使用されるシェルの組み込みコマンドです。シェルスクリプトで判断を行う際によく使われます。
test
コマンドに -s
オプションを指定すると、ファイルが存在し、かつサイズがゼロより大きい(つまり、空でない)かどうかを確認します。
まず、~/project
ディレクトリに空のファイルと空でないファイルを作成しましょう。
ターミナルが開いていない場合は開きます。デフォルトでは ~/project
ディレクトリにいるはずです。
empty_file.txt
という名前の空のファイルを作成します。
touch empty_file.txt
次に、non_empty_file.txt
という名前のファイルを作成し、echo
コマンドとリダイレクト演算子 >
を使ってその中にいくつかのテキストを追加します。>
演算子は、コマンドの出力をファイルにリダイレクトします。ファイルが存在しない場合は作成され、存在する場合はその内容が上書きされます。
echo "This file has content." > non_empty_file.txt
では、test -s
コマンドを使ってこれらのファイルを確認しましょう。test
コマンドは成功時に出力を生成しません。終了ステータスを使って成功または失敗を示します。終了ステータスが 0
は成功(条件が真)を意味し、ゼロ以外の終了ステータスは失敗(条件が偽)を意味します。
特殊変数 $?
を使って前のコマンドの終了ステータスを確認することができます。
空のファイルを確認します。
test -s empty_file.txt
echo $?
出力が 1
と表示されるはずです。これは、empty_file.txt
について条件(ファイルが存在し且つ空でない)が偽であることを示しています。
次に、空でないファイルを確認します。
test -s non_empty_file.txt
echo $?
出力が 0
と表示されるはずです。これは、non_empty_file.txt
について条件が真であることを示しています。
これは、シェルスクリプトでファイルのプロパティを確認する基本的な方法です。ファイルを処理する前に、ファイルに内容があることを確認するためにこの方法を使うことができます。
続ける をクリックして次に進みます。