C'est tellement plus facile. Le seul problème est que le contournement de la coque interdit toute commande de poisson personnalisée, qui est probablement verrouillée dans votre mémoire musculaire.
JohnMetta
J'ai vu cela aussi dans la documentation, mais pourquoi alors ce qui suit ne fonctionne-t-il pas? env SOME_VAR=1 echo $SOME_VAR
-S ou --no-scope-shadowing permet à la fonction d'accéder aux variables des fonctions d'appel. Normalement, toutes les variables de la fonction qui portent le même nom que les variables de la fonction appelante sont "masquées" et leur contenu est indépendant de la fonction appelante.
set -lx date '12/04/2012'
begin; set -lx date '12/04/2012'; ruby -e 'puts ENV["date"]'; end
env SOME_VAR=1 command
Je ne vois pas pourquoi cela ne fonctionnerait pas:
env EDITOR=vim crontab -e
cela contourne complètement le shell.
la source
env SOME_VAR=1 echo $SOME_VAR
C'est de la documentation
Utilisez la commande env.
Vous pouvez également déclarer une variable locale dans un bloc et ne pas contourner le shell
la source
en fonction d'une définition de
be
fonction, cela peut échouerPour que cela fonctionne:
S'il vous plaît, voir l'explication de l' option --no-scope-shadowing
la source