Befehl Auswirkung auf
setÄndert nur unmittelbar Variablen für die aktuelle Shell. Die Änderungen werden in keine Subshells oder von der Shell gestarteten Programme übernommen.
exportSetzt Variablen für die aktuelle Shell und alle Untershells und Programme die durch diese Shell gestartet werden
envStartet einen Prozess und setzt bestimmte Umgebungsvariablen. Die Umgebungsvariablen der Shell von der ggf. gestartet wirdt ändern sich dabei nicht

Beispiel:

set eins=1
echo $eins

<shx bash> export mytest=„hallo“ echo $mytest hallo /bin/bash echo $mytest hallo </sxh>

/usr/bin/env blafasel="hallo" /usr/bin/zsh -c 'echo $blafasel'
hallo
set | grep blafasel                                           

env

Mit einfachen Anführungszeichen („richtig“):

blafasel="wiedersehen"
/usr/bin/env blafasel="hallo" /usr/bin/zsh -c 'echo $blafasel'
hallo

Mit doppelten Anführungszeichen („falsch“):

blafasel="wiedersehen"
/usr/bin/env blafasel="hallo" /usr/bin/zsh -c "echo $blafasel"
wiedersehen