ファイルまたはディレクトリがBashシェルスクリプトに存在するかどうかを確認する方法

ファイルまたはディレクトリがBashシェルスクリプトに存在するかどうかを確認する方法

Bashスクリプトからファイルまたはディレクトリが存在するかどうかを確認する

Bashは、Linuxで定期的に実行されるコマンドを自動化するために使用されます。ファイル/ディレクトリの操作を目的としたコマンドは非常に頻繁に使用され、通常、そのようなコマンドを実行する前に、特定のファイルまたはディレクトリが存在するかどうかを確認する必要があります。このチェックの実行方法を見てみましょう。

構文と使用法

ファイル

ファイルが存在するかどうかを確認するには、次の構文を使用します。

[ -f  ]

[ -f ]は0を返します。つまり、存在する場合は成功し、存在しない場合はゼロ以外のステータスを返します。通常、これはifステートメントの条件として使用されます。

if [ -f  ]
then
  
fi

戻り値を否定するには、単に-f否定演算子(!)を前に付けます。

if [ ! -f  ]
then
  
fi

この場合、返されるゼロ以外のステータス(false)は無効になり、0(true)と見なされるため、ファイルが存在しない場合は条件が満たされます。

ファイルまたはディレクトリがBashシェルスクリプトに存在するかどうかを確認する方法

ファイルまたはディレクトリがBashシェルスクリプトに存在するかどうかを確認する方法

チェックするファイルが現在のディレクトリに存在せず、他のディレクトリに存在する場合は、ファイル名だけでなく、ファイルのフルパスを指定する必要があることに注意してください。

ディレクトリ

ファイルのチェックに使用されるのと同様の構文が、ディレクトリのチェックに使用されます。

[ -d  ]

ファイルのステートメントと同様に、このステートメントは0(ディレクトリが存在する場合は成功)を返し、ゼロ以外(存在しない場合は失敗ステータス)を返します。これは、ifステートメント条件でも一般的に使用されます。

if [ -d  ]
then
  
fi

返されたステータスを否定するには、の前に-d否定演算子(!)を付けます。

if [ ! -d  ]
then
  
fi

この場合、ディレクトリが存在しない場合、条件は満たされ(ステータス0)、ディレクトリが存在する場合、条件は失敗します(ステータスがゼロ以外)。

ファイルまたはディレクトリがBashシェルスクリプトに存在するかどうかを確認する方法

ファイルについて前述したように、チェックするディレクトリが現在のディレクトリではなく別の場所に存在する場合は、ディレクトリ名だけでなく、ディレクトリパス全体を入力する必要があります。

💡[...]ここで使用されている角かっこ構文()は、実際にはtest。と呼ばれるLinuxコマンドです。オプション-f-dは、このコマンドの機能です。詳細については、テストのマニュアルページ(man test)を参照してください。

Bashスクリプトから確認する

上記の例では、端末で直接構文を使用しています。シェルは、ループまたは条件ステートメント(ifこの場合)に遭遇するたびに、プロンプトを続行し、ユーザーがブロックの続行を入力できるようにします。

同じ構文をBashスクリプト内から使用できます。

ファイルまたはディレクトリがBashシェルスクリプトに存在するかどうかを確認する方法

#!/bin/bash 開始時には、ファイルが実行されるときに使用するインタプリタを指定します。現在、Bashが最も一般的に使用されているシェルzshですが、このファイルの先頭でbashの代わりに指定する必要があるのようなシェルを好むユーザーもい ます。

 このファイルの実行権限を付与するには、次のコマンドを実行します。

chmod +x test.sh

最後に、ファイルを実行するには、次のコマンド を実行します

./test.sh
Tags: #bash

2020年のUbuntu20.04の15のベストテーマ

2020年のUbuntu20.04の15のベストテーマ

多くの新しい更新されたテーマは、Ubuntu20.04の新しいGNOMEデスクトップにインストールする準備ができています。ここに2020年の最高のubuntuテーマのリストがあります

Ubuntuの「Alt-Tab」でWindowsのグループ化を解除する方法

Ubuntuの「Alt-Tab」でWindowsのグループ化を解除する方法

Ubuntuでは、デフォルトで、Windowsの代わりにアプリケーションを切り替えることができます。これを元に戻し、UbuntuのAlt-Tabでタブのグループ化を解除する方法は次のとおりです。

Ubuntu20.04に最適な10以上のGNOME拡張機能

Ubuntu20.04に最適な10以上のGNOME拡張機能

Gno-Menu、Extended Gesturesなどの人気のある拡張機能の多くは、Ubuntu20.04では機能しません。したがって、ここに最も効果的なGNOME拡張機能のリストがあります

7最高のUbuntuダイナミック壁紙アプリ

7最高のUbuntuダイナミック壁紙アプリ

アプリを使用してUbuntuのネイティブ壁紙をスライドショーすることはいつでもできますが、壁紙を動的にダウンロードして設定するためのアプリをいくつか紹介します。

Ubuntuのルートスーパーユーザーの違い

Ubuntuのルートスーパーユーザーの違い

Ubuntuのルートスーパーユーザーの違いは何ですか?さて、ここでカバーしてもらいます。

Ubuntu12.04用のTeamViewer8をインストールします

Ubuntu12.04用のTeamViewer8をインストールします

このビデオでは、完全なガイド付きのubuntu12.04システム用のTeamViewer8をインストールして使用します。しかし、これはウィンドウでも同じように機能します。

2020年のUbuntu用の最高の無料ビデオエディタ

2020年のUbuntu用の最高の無料ビデオエディタ

すべての綿毛を除いて、ここにあなたが素晴らしいビデオを作成するために使うことができるUbuntuのための最高の無料のビデオエディタのリストがあります。

Linuxを使い始めるための9つの基本コマンド

Linuxを使い始めるための9つの基本コマンド

Linuxのハウツーガイドでは、ターミナルで特定の操作を実行することを期待していることがよくありますが、これは最初は恐ろしいように思えます。しかし、心配する必要はありません。このLinuxコマンドのチートシートでは、ターミナルを開いていくつかの便利なコマンドを発行するプロセスについて説明します。

ArchLinuxでパッケージをインストールおよび削除する方法

ArchLinuxでパッケージをインストールおよび削除する方法

Arch Linuxにパッケージをインストールしたいのですが、方法がわかりませんか?多くの人は、DebianベースのディストリビューションからArchに最初に移行するときにこの問題に直面します。ただし、パッケージマネージャーを使用して、Archベースのシステムでパッケージを簡単に管理できます。

UbuntuからAndroidへの5つの最高のWi-Fiファイル転送アプリ

UbuntuからAndroidへの5つの最高のWi-Fiファイル転送アプリ

FTP、ピアツーピアファイル転送、Wi-Fi転送などのメカニズムを使用すると、AndroidとUbuntuの間でファイルを頻繁に共有する場合に時間を節約できます。