Maison >Tutoriel système >Linux >5 pièges courants concernant les variables dans Linux Bash Shell

5 pièges courants concernant les variables dans Linux Bash Shell

WBOY
WBOYavant
2024-02-12 22:09:131105parcourir

Le langage de script Bash prend en charge les variables d'exploitation sous Linux. Cependant, si vous avez de l'expérience en développement dans d'autres langages de programmation populaires, l'utilisation de Bash pour gérer les variables peut être sujette aux erreurs. C'est parce que sa syntaxe est différente des autres langages (et même bizarre pour certains développeurs).

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

Cet article vous fournira 5 conseils pratiques basés sur mon expérience. Après l’avoir lu, cela peut vous aider à éviter des erreurs inutiles.

0. Il ne peut pas y avoir d'espaces des deux côtés du signe égal

Pour de nombreux langages, comme Python, l'ajout d'espaces autour du signe égal est une bonne pratique car cela améliore la lisibilité du code.

Mais dans Bash, vous ne devez pas ajouter d'espaces supplémentaires lors de la définition des variables.

Par exemple, si je déclare une variable nommée name comme ceci :

name = "Yang"

Il y aura une erreur ici :

-bash: name: command not found

Comme vous pouvez le voir ci-dessus, Bash traite name comme une commande plutôt que comme une variable car j'ai ajouté des espaces inutiles.

La manière correcte de définir une variable est donc la suivante :

name="Yang"

1. Définissez correctement le tableau

Définir un tableau dans Bash n’est pas difficile. Il suffit d'utiliser une paire de crochets pour inclure tous les éléments, comme le montre l'exemple suivant :

names=("Yang" "Elon" "Bill")

Comme le dit le proverbe : « Les détails déterminent le succès ou l'échec ». J'ai déjà commis une erreur critique en écrivant un script Bash. J'utilise habituellement des virgules (pas des espaces) pour séparer chaque élément du tableau.

names=("Yang","Elon","Bill")

Bash ne traite pas les virgules comme séparateurs, et il y en a names 数组中只有一个元素 Yang,Elon,Bill au lieu des trois attendus.

2.Choisissez correctement les guillemets

Lorsque nous déclarons une variable dans Bash, il existe 3 options pour utiliser les guillemets :

  • Pas de citations
  • Utilisez des guillemets simples
  • Utilisez des guillemets doubles

Par défaut, chaque valeur dans Bash est une chaîne. Ainsi, si aucun espace n’est requis, nous n’avons pas besoin d’utiliser de guillemets. (Encore une fois, c'est un peu différent des autres langages où on ne peut pas définir une chaîne sans guillemets)

Lorsque vous devez utiliser des guillemets, veuillez noter la différence entre les guillemets simples et les guillemets doubles.

Par exemple, déclarons 3 variables comme indiqué ci-dessous. Alors, truth1truth2 Quelle est la différence ?

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

如果你打印它们,你会看到 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 中所有的环境变量都是用大写字母写的,所以我们可以用小写字母来自定义变量,以区别环境变量。这是一个好习惯。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer