[Linux] #!/bin/sh と #!/bin/bash の違い、コード例と一般的な例外処理の組み合わせ

#!/bin/sh と #!/bin/bash の違い、コード例と一般的な例外処理の組み合わせ

#!/bin/shと は両方とも#!/bin/bashスクリプト ファイルの先頭であり、スクリプト ファイルのインタープリタを指定するために使用されます。ここで#!/bin/sh、 は Bourne シェル インタープリタを指定し、#!/bin/bashは Bash シェル インタープリタを指定します。

Bash シェルは、より多くの機能と構文をサポートする Bourne シェルの拡張バージョンです。したがって、スクリプトで Bash シェル固有の構文または機能を使用する必要がある場合は、 を使用して#!/bin/bashインタープリターを指定する必要があります。

以下は、2 つのインタプリタの違いを示す簡単な例です。

#!/bin/sh

echo "Hello, world!"

# 使用 Bash 特有的语法
if [[ 1 -eq 1 ]]; then
  echo "1 equals 1"
fi

上記の例では、[[ ... ]]Bash シェルに固有の構文が使用されています。を使用して#!/bin/shインタープリターを指定すると、エラーが報告されます。

./test.sh: 6: [[: not found

#!/bin/bashしたがって、インタープリターを指定するために使用するのが正しい方法です。

一般的な例外処理には次のものが含まれます。

  1. インタプリタが存在しない: 指定されたインタプリタが存在しない場合、エラーが報告されます。これは、インタプリタの存在を確認することで回避できます。
  2. 権限が不十分: スクリプト ファイルに実行権限がない場合、エラーが報告されます。chmod +xコマンドを使用してスクリプトファイルに実行権限を追加できます。
  3. 構文エラー: スクリプト ファイルに構文エラーがある場合、エラーが報告されます。コマンドラインでスクリプトファイルを実行することで、構文エラーをチェックできます。

おすすめ

転載: blog.csdn.net/qq_41604569/article/details/131292435