exécuter la commande Bash de IPython
Je veux la source de mon environnement bash lors de l'exécution d'une commande bash de IPython à l'aide de la !
opérateur, donc me permettre l'accès à mon défini bash fonctions:
In[2]: !<my_fancy_bash_function> <function_argument>
actuellement IPython est sourcing sh
plutôt que bash
:
In[3]: !declare -F
sh: 1: declare: not found
Comment source bash
et régler mes paramètres d'environnement de IPython?
OriginalL'auteur chris | 2013-04-10
Vous devez vous connecter pour publier un commentaire.
Fernando Perez, créateur de IPython, suggère ce:
Cela fonctionne sur la version stable actuelle (0.13.2). Il admet que c'est un peu maladroit, et se félicite de pull requests. . .
OriginalL'auteur Jason Sundram
Si le
!
mise en œuvre utiliseIPython.utils._process_posix.système
sous le capot, alors il va utiliser quel que soitwhich sh
retourne comme le traitement de la coquille. Ce pourrait être une véritable mise en œuvre de la Bourne shell - il est probable Bash dans certains mode de compatibilité sur de nombreux Linuxes. Sur mon MacBook Pro, on dirait que c'est une brute shell Bash:J'espérais qu'il allait utiliser le
$SHELL
variable d'environnement, mais il ne semble pas aujourd'hui. Vous pouvez probablement branche le dépôt github, modifier laProcessHandler.sh
propriété de la mise en œuvre de fouiller dansos.environ['SHELL']
et utilisez cette fonction si elle est définie au lieu de l'appelerpexpect.which('sh')
. Alors question d'une pull request.!
de mise en œuvre (en lien dans votre réponse)? Faire un rapide 'ghetto' essai de créer des liens symboliques vers /bin/bash /bin/sh et l'émission de! source ~/.bashrc && declare -F
donne rien, alors que! env && declare -F
imprime correctement mes variables déclarées, mais le bash fonctions ne sont pas encore accessibles...toutes les idées de ce qui se passe là-bas?Sur la dernière version, vous pouvez utiliser le %%bash cellule de la magie pour exécuter plusieurs lignes de bash.
Découvert quelque chose d'assez incroyable... vous pouvez utiliser une simple
bash
l'expansion des variables d'astuces pour développer une variable déclarée danspython
! Par exempleextension=".txt"
suivie par!ls *"$extension"
imprime toutes les.txt
fichiers!OriginalL'auteur D.Shawley