J'ai une variable appelée filepath=/tmp/name
.
Pour accéder à la variable, je sais que je peux faire ceci: $filepath
Dans mon script shell, j'ai essayé de faire quelque chose comme ça (les backticks sont destinés)
`tail -1 $filepath_newstap.sh`
Cette ligne échoue, duuh !, car la variable n'est pas appelée $filepath_newstap.sh
Comment ajouter _newstap.sh
au nom de la variable?
Veuillez noter que les backticks sont destinés à l'évaluation de l'expression.
set -u
ce qui provoque l'abandon du script si vous référencez une variable non définie.${}
et guillemets doubles? Dois-je préférer l'un à l'autre?Utilisez des accolades autour du nom de la variable:
la source
$filepath_newstap.sh
interprété${filepath_newstap}.sh
plutôt que comme prévu${filepath}_newstap.sh
, ce qui résoudrait le problème."$filepath"_foo
et${filepath}_foo
s'étendraient tous deux à/tmp/name_foo
. Cependant,'$filepath'_foo
,"$"filepath_foo
et$"filepath"_foo
serait tout éviter une expansion complètement. C'est pourquoiexport PATH=$PATH:$addpath
travaille à ajouter:$addpath
(qui serait soumis à l'expansion des paramètres) à laPATH
variable d'environnement.Dans Bash:
la source