La mention d'erreur "type" fait référence au type de données de la variable, comme une chaîne ou un tableau.
$PATH
est une chaîne de caractères, $path
est un tableau. Vous ne pouvez pas assigner une chaîne de caractères, que ce soit par variable ou par littéral, à une variable typée pour contenir un tableau, puisque les types ne correspondent pas.
En ce qui concerne la différence entre les deux variables, elles sont censées représenter la même liste de dossiers, mais dans des formats différents. $PATH
contenant /path/to/one:/path/to/two
signifierait que $path
est le premier élément de /path/to/one
et le second est /path/to/two
.
Vous ne devriez pas avoir à gérer les deux variables (et l'affectation de l'une à l'autre ne fonctionnera pas puisque les types ne correspondent pas) - l'interpréteur de commandes devrait s'en charger pour vous. Il suffit d'ajouter à la variable $PATH
et le chemin que vous ajoutez doit exister en tant qu'élément de $path
.
Cela ne s'applique que dans les cas suivants zsh
, hérité de *csh
. Vous pouvez voir la "liaison" entre les deux variables avec typeset -p PATH
.
$path
étant un tableau, c'est vraiment pratique :
-
l'ajout et la modification du chemin peuvent être effectués à l'aide d'opérations de type tableau, comme append, plutôt que par la manipulation de chaînes de caractères (ce qui nécessite une division et une jonction dans le cas d'une modification quelque part au milieu).
-
Le bouclage est juste for i ($path) { … }
sans qu'il soit nécessaire de définir le bon caractère de séparation.