Ich versuche, lokale / Umgebungsvariablen zu verstehen und Befehle zu exportieren / setzen.
$ set FILEM="razrax"
$ echo $FILEM
$ FILEN="test"
$ echo $FILEN
test
Bitte erläutern Sie, warum eine echo $FILEM
leere Zeichenfolge zurückgegeben wird
Sie verwechseln bash
mit csh
.
In bash
wie in jedem Bourne - Shell-like, set
wird der Befehl an eingestellten Optionen (Shell Konfigurationseinstellungen , wie -f
, -C
, -o noclobber
...) und Positionsparameter ( $1
, $2
...).
set FILEM="razrax"
Setzt $1
auf FILEM=razrax
.
$ set FILEM="razrax"
$ echo "$1"
FILEM=razrax
Die Syntax für die Variablenzuweisung in Bourne-ähnlichen Shells lautet:
VAR=value
(kein Platz auf beiden Seiten erlaubt =
).
ksh
und einige andere Bourne-ähnliche Shells (mksh, pdksh, zsh) können auch Array-Variablen zuweisen mit set
:
set -A array value1 value2
zsh
, bash
, yash
Und neuere Versionen ksh
verwenden diese Syntax statt:
array=(value1 value2)
Im Gegensatz dazu lautet die Syntax in csh
oder tcsh
:
set VAR = value
set array = (value1 value2)
(Leerzeichen um =
optional).
In rc
/ es
Muscheln:
VAR = value
array = (value1 value2)
(Leerzeichen um =
optional).
set -C
setzt die-C
Option (wieset -o noclobber
).set foo
weistfoo
zu$1
(und$#
ist 1, ($2
,$3
sind nicht gesetzt, wenn zuvor gesetzt)). Weitere Informationen finden Sie im Handbuch Ihrer Shell.