1 votes

Exécuter l'alias zsh via l'automate ?

J'utilise zsh avec oh-my-zsh dans iTerm sur MacOS. Il y a quelques alias définis dans mon .zshrc que j'utilise souvent, comme ceci :

deploy(){
 cd ~/Path/To/My/Project;
 build ...;
 rsync ...;
}

Pour l'exécuter, je dois passer à iTerm et lancer l'alias. Maintenant, j'aimerais pouvoir le faire de n'importe où grâce à un raccourci clavier.

J'ai lu que l'automate est l'outil de choix.

J'ai créé une action "run shell script" et choisi `/bin/zsh/' dans la liste des shells disponibles.

Mais l'exécution de mon alias renvoie zsh:1: command not found .

Suis-je sur la mauvaise coquille ? Mais echo $0 dans iTerm me donne -zsh .

Comment puis-je exécuter mon alias sans être dans la fenêtre iTerm ? N'importe quelle approche fera l'affaire, Automator est juste la façon dont j'essaie de le faire.

5voto

fengelhardt Points 166

La solution est de sourcer les dépendances de fichiers dont vous avez besoin dans le script de l'automate.

Exemple si vous avez ajouté tous vos scripts à ~/.zshrc

source ~/.zshrc
deploy

Vous pouvez déboguer plus facilement en faisant which deploy pour vérifier si ce script est accessible.

3voto

Michael Zhou Points 167

Automator s'exécute dans son propre environnement et ne lit pas les fichiers rc de votre shell. Le PATH est limité à /usr/bin:/bin:/usr/sbin:/sbin . Aucun de l'environnement n'est exporté pour une utilisation ultérieure. Vous pourriez définir la fonction dans Run Shell script et l'exécuter comme ceci :

 deploy () {
 cd ~/Path/To/My/Project;
 build ...;
 rsync ...;
 }

 deploy

Bien que cela soit quelque peu limité.

0voto

Urs Points 387

J'ai trouvé une solution de contournement sans automator ;

Sur https://apple.stackexchange.com/a/136931/60854 J'ai lu sur les touches de raccourci dans iTerm. J'ai créé un raccourci dans Keys > Hotkey pour appeler iTerm au premier plan et un autre dans Profile > Keys > Key Mappings pour entrer une chaîne de caractères. deploy\n . Maintenant, j'appuie sur cmd-i cmd-o et c'est parti.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X