ホームページ >システムチュートリアル >Linux >Linux Bash シェルの変数に関する 5 つの一般的な落とし穴
Bash スクリプト言語は、Linux の操作変数をサポートしています。ただし、他の一般的なプログラミング言語での開発経験がある場合、Bash を使用して変数を処理するとエラーが発生しやすい可能性があります。これは、その構文が他の言語とは異なるためです(一部の開発者にとっては少し奇妙ですらあります)。
この記事では、私の経験に基づいた 5 つの実践的なヒントを紹介します。これを読んだ後は、不要な間違いを避けるのに役立ちます。
Python などの多くの言語では、コードの可読性が向上するため、等号の周りにスペースを追加することをお勧めします。
ただし、Bash では、変数を定義するときに余分なスペースを追加する必要はありません。
たとえば、name
という名前の変数を次のように宣言するとします。
リーリー
リーリー
上記のとおり、不要なスペースを追加したため、Bash はname を変数ではなくコマンドとして扱います。
リーリー
格言にあるように、「成功か失敗は細部で決まる」。以前、Bash スクリプトを書いているときに重大な間違いを犯しました。私は配列内の各要素を区切るのにスペースではなくカンマをよく使用します。
リーリーBash はカンマを区切り文字として扱いません。また、
names 配列には、予想される 3 つの要素ではなく、Yang,Elon,Bill
という 1 つの要素しかありません。
引用符を使用する必要がある場合は、
一重引用符と二重引用符の違いに注意してください。 例として、以下のように 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.
。而 truth2
是 Yang is amazing.
。
总而言之,一对单引号内的字符串将始终被解释为它的本身。
在 Bash 中,我们可以将命令的结果保存到变量中。有两种可能的方法来做到这一点:
variable=
command“variable=$(command)
例如,要保存 ls
命令的结果,我们可以这样写:
file_list=`ls`
或者
file_list=$(ls)
但是,这里的最佳实践始终是使用第二种方法,尤其是在编写较长的脚本时。因为反引号和单引号看起来很相似,有时你可能会混淆它们。
一些名称在 Linux 中被预定义为环境变量,如 USER
、HOME
、PATH
等。我们可以使用 printenv
命令列出它们。
显然,我们不应该用与环境变量相同的名称来声明我们的变量。
好消息是 Linux 中所有的环境变量都是用大写字母写的,所以我们可以用小写字母来自定义变量,以区别环境变量。这是一个好习惯。
以上がLinux Bash シェルの変数に関する 5 つの一般的な落とし穴の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。