Je veux passer la variable dans le script au moment de l'exécution
ex: sh abc.sh export id=3
Les variables exscopes et celles définies sur la même command line sont visibles par le programme:
$ cat foo.sh #!/bin/sh echo "$foo" $ foo=bar ./foo.sh bar $ export foo=bar $ ./foo.sh bar
Mais un idiome plus commun serait d'utiliser des arguments de command line, ils sont fixés aux parameters de position $1
, $2
, etc.
$ cat arg.sh #!/bin/sh echo "$1 and $2" $ ./arg.sh alpha beta alpha and beta
Dans les deux cas, un script robuste devrait traiter le cas où certaines des variables sont manquantes (unset).
Vous pouvez le faire (uniquement pour cette exécution) de cette façon:
id=3 sh abc.sh
déclarer (ou exporter, pas forcément ici) avant l'exécution:
id=3 ./myScript.sh
myScript.sh:
#!/bin/bash echo "id = $id"
Sortie:
id = 3