J'ai un problème lors de l'utilisation de la commande «export»

12

Lorsque je mets sudo "export PROXY_LOCAL_NET_IP = 10.113.35.108", j'obtiens l'erreur suivante:

sudo: export: command not found

Que dois-je faire pour résoudre ce problème?

Papa
la source
Ça marche sans sudo?
user128285
Vous ne devriez probablement pas utiliser de guillemets dans la commande.
user128285
l'exportation ne fonctionnera pas avec fish-bash pour une raison quelconque
Raffael
Comment conserver les variables d'environnement lors de l'utilisation de sudo: stackoverflow.com/questions/8633461/…
Mark Fox

Réponses:

9

Vous ne pouvez pas utiliser les commandes internes de shell avec sudo. Seule la commande correspondant aux fichiers valides sera exécutée sudo. La syntaxe correcte pour sudo est:sudo [options] [filename]

L'exportation est une commande interne (intégrée) du shell Bash et peut-être aussi une autre.

Notez également que cela n'a aucun sens de faire l'action de exportvia sudo, cela doit être fait sous votre ID utilisateur pour être applicable à votre shell et à ses processus enfants.

Si vous passez à l'utilisateur root pour ce faire, vous devrez effectuer le reste de votre opération en tant que root: ce n'est pas recommandé . Parce que si vous quittez le shell racine, l'affectation effectuée par exportsera perdue.

Benoit
la source
7

Devenez root avec sudo -set votre mot de passe.
Entrez ensuite votre commande sans sudo: export PROXY_LOCAL_NET_IP = 10.113.35.108`

prophétie201
la source
4

Vous pouvez utiliser l'option sudo -E pour utiliser la variable exportée dans une commande sudo

La question stackoverflow suivante contient des détails supplémentaires sur la façon d'utiliser la variable d'environnement avec sudo

user596851
la source