Ich benutze Ubuntu 16.04 mit dem nativen Bash.
Ich bin nicht sicher, ob ausgeführt
#!/bin/bash
myFunc() {
export myVar="myVal"
}
myFunc
ist in jeder Hinsicht gleichbedeutend mit der Ausführung export myVar="myVal"
.
Natürlich sollte eine globale Variable normalerweise außerhalb einer Funktion deklariert werden (eine Frage der Konvention, die ich annehme, auch wenn dies technisch möglich ist), aber ich wundere mich über die exotischeren Fälle, in denen man eine sehr allgemeine Funktion schreibt und eine Variable darin haben möchte immer noch für alles verfügbar sein, überall.
Wäre export
eine Variable in einer Funktion identisch mit dem globalen Export direkt in die CLI, um sie für alle Elemente in der Shell (alle Subshells und Funktionen in ihnen) verfügbar zu machen?
quelle