web-dev-qa-db-fra.com

Comment passer des paramètres à un script Linux Bash?

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
51
chun

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
75
ghostdog74

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 "$@".

9
Dennis Williamson

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
7
mouviciel

0 $ 1 $ 2 $

Et ainsi de suite contiendra le nom du script, puis le premier et le deuxième argument de ligne.

6