Merhaba ben size bir komut çalıştırmak ve ne zaman istemi yükler sonucu her şey yazdırırım Bu nasılZsh İstemi Özelleştirme
export PROMPT="This is the date %d"
gibi istemini düzenlemek için istemi değişkeni ayarlamak biliyoruz.
Merhaba ben size bir komut çalıştırmak ve ne zaman istemi yükler sonucu her şey yazdırırım Bu nasılZsh İstemi Özelleştirme
export PROMPT="This is the date %d"
gibi istemini düzenlemek için istemi değişkeni ayarlamak biliyoruz.
bunu başarmak için aslında iki (ana) yol vardır:
setopt promptsubst
PROMPT='Date %d Result $(a_command) '
promptsubst
olmak zorunda istemi bir parçası olarak bir komutu çalıştırmak için
Kullanım komut ikamesi etkinse, zsh
, hiçbir paremetre genişletme, aritmetik genişletme veya komut ikamesi yapmayacaktır.
Ayrıca, hızlı yanıt metni, PROMPT
ayarlandığında genişletme yapılmayacak şekilde tırnak içine alınmalıdır.
PROMPT="Date %d Result \$(a_command) Const $(another_command)"
PROMPT
ayarlarken Bu $(another_command)
genişleyecektir (yani çalıştırılır: Yani ya gerektiğinde bunları ayrı ayrı alıntı bir \
ile tek tırnak içine koyun ya, sen/çift tırnak kullanmak istiyorsanız varsa, başına $
her seferinde bir kez ve bir kez daha kalıcı olarak değiştirilen sonuç) ve $(a_command)
.
olun precmd
fonksiyonu (veya kanca) kullanılması ve psvar
dizi:
autoload -Uz add-zsh-hook
a_function() {
psvar[1]=$(a_command)
}
two_function() {
psvar[2]=$(two_command)
}
add-zsh-hook precmd a_function
add-zsh-hook precmd two_function
PROMPT='Date %d Result1 %v Result2 %2v '
precmd
işlev istemi basılır hemen önce gerçekleştirilir. precmd_functions
dizisinde çalıştırılacak işlevlerin listesini de ayarlayabilirsiniz.add-zsh-hook
, bu diziye işlev eklemenin kolay bir yolunu sunar. Komut isteminde,%Nv
, psvar
dizisinin N-öğesiyle değiştirilir. N
(%v
) N==1
varsayılır dışarı bırakılırsa ikinci yöntem daha sonra sadece promptsubst
kullanarak çok daha karmaşık görünebilir ilk bakışta(bu aynı zamanda sayısal bağımsız değişken alır diğer istemi simgesi için geçerlidir). Ancak bu sadece çok basit ikameler için geçerlidir. precmd
kullanmak, $()
'un içinde çeşitli kod satırlarının karıştırılması nedeniyle okunamayan PROMPT
tanımını yapmadan daha karmaşık işlevlerin kullanılmasına izin verir.
Ayrıca iki yaklaşımı birleştirmek ve bazı veya tüm vakalarda psvar
kullanımını vazgeçmek: Bir kabukları yapılandırma parametrelerini dışa gerek genellikle
autoload -Uz add-zsh-hook
setopt promptsubst
a_function() {
a_parameter=$(a_command)
}
two_function() {
psvar[2]=$(two_command)
}
add-zsh-hook precmd a_function
add-zsh-hook precmd two_function
PROMPT='Date %d Result ${a_parameter} %2v'
yoktur. 'export', daha sonra başlatılan süreçlerin ortamına bir parametre sunar. – Adaephon