2 votes

Quelle est la différence entre les commandes "export -p" et "env" ?

env affiche une liste de toutes les variables d'environnement

$ env |wc -l
63

Total des variables d'environnement = 63

Selon help export

-p   display a list of all exported variables and functions

$export -p |wc -l 
63

Variables d'environnement+lignes de fonctions=63 puis lignes de fonctions=0

set dispenser une liste de variables d'environnement+ Shell+fonctions

$set |wc -l
4772

Ensuite, pour afficher uniquement les variables (variables d'environnement+Shell)

$(set -o posix ;set)|wc -l
172

Cela signifie que les lignes de fonctions = 4772-172 et non zéro. Veuillez m'expliquer ce qui se passe.

2voto

heemayl Points 85741

La confusion vient du fait que export -p par défaut, n'affiche que les données exportées variables ( declare -x ), pas fonctions .

Pour afficher les données exportées fonctions ( declare -fx ) en utilisant export :

export -fp

De plus, pour clarifier, compter le nombre de lignes pour obtenir le nombre de fonctions est complètement erroné car les définitions de fonctions s'étendent sur plusieurs lignes (même si elles sont définies sur une seule ligne lors de la déclaration), set les montre en plusieurs lignes).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X