Zsh alias'ı automator üzerinden çalıştır?


0

MacOS'ta iTerm’de oh-my-zsh ile zsh kullanıyorum. .Zshrc içinde tanımlanan bazı takma adlar var, bunun gibi sık kullanıyorum:

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

Bunu yapmak için iTerm’e geçip takma adı kullanmalıyım. Şimdi, bunu herhangi bir yerden bir kısayol tuşu ile yapabilmek istiyorum.

Automator'ın tercih edilen bir araç olduğunu okudum.

Bir "run shell script" eylemi yarattım ve kullanılabilir mermiler listesinden `/ bin / zsh / 'seçtim.

Ama takma ismimi çalıştırıyorum zsh:1: command not found.

Yanlış kabukta mıyım? Ama echo $0iTerm'de bana veriyor -zsh.

Takma adımı iTerm penceresinde olmadan nasıl çalıştırabilirim? Herhangi bir yaklaşım işe yarayacak, Automator bu şekilde başarmaya çalışıyorum.


1
Bu bir fonksiyondur. Normalde, işlevi ayrı bir dosyaya yazar ve bunu tarafından tanımlanan bir dizine yerleştirirsiniz fpath. Senin içinde .zshrcyapacağınız autoloadonu kullanmak için işlevi.
fd0

Ah! Ve sonra tüm mermilerde ve otomatlarda mevcut olacak sanırım. İpucunuzu takip ettikten sonra gelen coderwall.com/p/ktv3hq/zsh-autoloading-functions-i diyebilir misiniz ?
Urs

Ne aldın echo $SHELL?
William T Froggard

echo $SHELLreturn / bin / zsh
Urs

Yanıtlar:


1

Automator kendi ortamında çalışır ve kabuk rc dosyalarınızı okumaz. PATH ile sınırlıdır /usr/bin:/bin:/usr/sbin:/sbin. Daha fazla kullanım için ortamın hiçbiri dışa aktarılmaz. Fonksiyonu Run Shell Script'de tanımlayabilir ve şöyle çalıştırabilirsiniz:

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

 deploy

Bu biraz sınırlı olmasına rağmen.


Kulağa mantıklı geliyor. Fakat birkaç fonksiyona sahibim, örneğin build ve rsync. Run Shell Script'de "iç içe geçebilir" mi?
Urs

@Urs İşlev tanımları ilk çağrısından önce gelmelidir. Senaryosunda yaptığını varsayarsak, hiçbir sorun göremiyorum.
fd0

0

Automator olmadan bir geçici çözüm buldum;

On https://apple.stackexchange.com/a/136931/60854 ben iTerm içinde kısayol tuşları hakkında okuyun. İTerm'i ön plana çağırmak için Keys> Kısayol Tuşu ve dize girmek için Profil> Tuşlar> Anahtar Eşlemeleri bölümünden bir kısayol tuşu yaptım deploy\n. Şimdi basın cmd-i cmd-ove işte başlıyoruz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.