Commande d’exportation dans Unix

Je suis nouveau sur Unix et je sais que la commande d’ export peut être utilisée pour créer des variables de session mais quel est le but de la commande ci-dessous:

 bash-3.2$ export $TEST declare -x PWD="/home/username" declare -x SHELL="/bin/bash" declare -x SSH_TTY="/dev/pts/4" declare -x USER="username" 

S’il vous plaît, aidez-moi à comprendre cette commande. Je n’ai pas de variable avec le nom TEST, mais quand j’ai donné cette commande, le shell a imprimé des résultats.

Le shell a développé la variable inexistante $TEST en une chaîne vide, puis a exécuté la commande export sans arguments. Lorsque vous faites cela, le shell répertorie les variables d’environnement exscopes.

Si vous souhaitez exporter une variable vide TEST, vous devez avoir écrit l’un de ces éléments:

 export TEST export TEST= export TEST='' export TEST="" 

(et dans ce cas, il existe d’autres moyens d’obtenir le même effet, comme export TEST=$TEST ou, plus ou moins sainement, export TEST="$TEST" , mais cela est généralement abrégé pour export TEST .)

La notation de declare -x détaillée declare -x dans la sortie est conçue pour vous permettre d’écrire la sortie dans un fichier, puis de recharger l’environnement avec le fichier . (point) ou les commandes source . Différentes coquilles présentent la sortie différemment, et pas nécessairement réutilisable.

La commande set est similaire (mais plus complexe). Il peut être utilisé pour définir des options de shell, définir les arguments de position ( $1 , $2 , etc.), mais lorsqu’il est exécuté sans arguments, il répertorie les variables définies. Notez que toutes les variables créées ne sont pas des variables d’environnement exscopes.