ホームページ  >  記事  >  システムチュートリアル  >  Linux Bash シェルの変数に関する 5 つの一般的な落とし穴

Linux Bash シェルの変数に関する 5 つの一般的な落とし穴

WBOY
WBOY転載
2024-02-12 22:09:131033ブラウズ

Bash スクリプト言語は、Linux の操作変数をサポートしています。ただし、他の一般的なプログラミング言語での開発経験がある場合、Bash を使用して変数を処理するとエラーが発生しやすい可能性があります。これは、その構文が他の言語とは異なるためです(一部の開発者にとっては少し奇妙ですらあります)。

关于 Linux Bash Shell 中变量的 5 个易错点

この記事では、私の経験に基づいた 5 つの実践的なヒントを紹介します。これを読んだ後は、不要な間違いを避けるのに役立ちます。

0.等号の両側にスペースを入れることはできません

Python などの多くの言語では、コードの可読性が向上するため、等号の周りにスペースを追加することをお勧めします。

ただし、Bash では、変数を定義するときに余分なスペースを追加する必要はありません。

たとえば、name という名前の変数を次のように宣言するとします。 リーリー

ここでエラーが発生します:

リーリー

上記のとおり、不要なスペースを追加したため、Bash は

name を変数ではなくコマンドとして扱います。

したがって、変数を定義する正しい方法は次のとおりです。

リーリー

1. 配列を正しく定義します

Bash で配列を定義するのは難しくありません。次の例に示すように、一対のかっこを使用してすべての要素を囲むだけです。 リーリー

格言にあるように、「成功か失敗は細部で決まる」。以前、Bash スクリプトを書いているときに重大な間違いを犯しました。私は配列内の各要素を区切るのにスペースではなくカンマをよく使用します。

リーリー

Bash はカンマを区切り文字として扱いません。また、

names

配列には、予想される 3 つの要素ではなく、Yang,Elon,Bill という 1 つの要素しかありません。

2. 引用符を正しく選択してください

Bash で変数を宣言する場合、引用符を使用するには 3 つのオプションがあります:

    引用符なし
  • 一重引用符を使用してください
  • 二重引用符を使用してください
  • デフォルトでは、Bash のすべての値は文字列です。したがって、スペースが必要ない場合は、引用符を使用する必要はありません。 (繰り返しになりますが、引用符なしでは文字列を定義できない他の言語とは少し異なります)

引用符を使用する必要がある場合は、

一重引用符

二重引用符の違いに注意してください。 例として、以下のように 3 つの変数を宣言してみましょう。では、

truth1

truth2 の違いは何でしょうか? <img src="https://img.php.cn/upload/article/000/887/227/170774695878192.png" alt="关于 Linux Bash Shell 中变量的 5 个易错点"><p>如果你打印它们,你会看到 <code style="max-width:90%">truth1${name} is amazing.。而 truth2Yang is amazing.

总而言之,一对单引号内的字符串将始终被解释为它的本身。

3. 避免在命令中使用反引号

在 Bash 中,我们可以将命令的结果保存到变量中。有两种可能的方法来做到这一点:

  • variable=command“
  • variable=$(command)

例如,要保存 ls 命令的结果,我们可以这样写:

file_list=`ls`

或者

file_list=$(ls)

但是,这里的最佳实践始终是使用第二种方法,尤其是在编写较长的脚本时。因为反引号单引号看起来很相似,有时你可能会混淆它们。

4. 避免使用特殊名称

一些名称在 Linux 中被预定义为环境变量,如 USERHOMEPATH 等。我们可以使用 printenv 命令列出它们。

显然,我们不应该用与环境变量相同的名称来声明我们的变量。

好消息是 Linux 中所有的环境变量都是用大写字母写的,所以我们可以用小写字母来自定义变量,以区别环境变量。这是一个好习惯。

以上がLinux Bash シェルの変数に関する 5 つの一般的な落とし穴の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlxlinux.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。