ryu2k6 schrieb:
Hi zusammen,
Habe ein Frage bezüglich Variablen.
Und zwar möchte ich von einem Skript, nennen Wir es db_install.sh mit der Variablen db_name.
Diese wird eingeben, z.B.
| echo "Geben Sie den Datenbank namen ein"
read db_name
|
Die Variable auch in einem anderen Skript verwenden.
z.B.
| echo "Ihr Datenbank Name lautet $db_name"
|
Kann mir einer sagen, ob das Funktioniert? wenn ja wie?
Ich nehme mal an, Du willst das zweite Skript vom ersten aus aufrufen. Man könnte das über die Umgebung transportieren (siehe export
in der bash
und anderen Bourne-Shells). Das ist zwar einfach, hat aber den Nachteil total unoffensichtlich zu sein und Du erzeugst eine enge Abhängigkeit zwischen den beiden.
Besser ist es, wenn Du es als Parameter übergibst. Dann kann das zweite Skript auch von anderen aufgerufen werden. Entweder nimmst Du dafür einen Positionsparameter oder Du analysierst die Optionen mit getopts
.
| $ ./v1.sh nnn
Ihr Datenbank Name lautet nnn
$ ./v2.sh -n nnn
Ihr Datenbank Name lautet nnn
|
Variante 1: Positionsparameter
| #!/bin/dash
db_name="$1"
shift
echo "Ihr Datenbank Name lautet $db_name"
|
Variante 2: Option
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | #!/bin/dash
while getopts ':n:' opt; do
case "$opt" in
n) db_name="$OPTARG"
;;
*) echo "ERROR: unknown option $OPTARG" >&2
exit 1
;;
esac
done
shift $((OPTIND - 1))
echo "Ihr Datenbank Name lautet $db_name"
|
Ciao
robert