J'ai un script bash Linux 'myshell'. Je veux qu'il lise deux dates comme paramètres, par exemple: myshell date1 date2
. Je suis un programmeur Java, mais je ne sais pas comment écrire un script pour y arriver).
Le reste du script est comme ceci:
sed "s/$date1/$date2/g" wlacd_stat.xml >tmp.xml
mv tmp.xml wlacd_stat.xml
tu utilises $1
, $2
dans votre script par exemple
date1="$1"
date2="$2"
sed "s/$date1/$date2/g" wlacd_stat.xml >temp.xml ;mv temp.xml wlacd_stat.xml #Semicolon can also replaced with a newline
Pour parcourir les paramètres, vous pouvez utiliser ce raccourci:
#!/bin/bash
for a
do
echo $a
done
Ce formulaire est le même que for a in "$@"
.
Les arguments bash sont nommés d'après leur position.
De plus, si vous avez besoin de gérer un argument après l'autre, vous pouvez les déplacer et toujours utiliser $1
:
while [ $# -gt 0 ]
do
echo $1
shift
done
0 $ 1 $ 2 $
Et ainsi de suite contiendra le nom du script, puis le premier et le deuxième argument de ligne.