Dinamik takma adları tanımlamak için değerlendirme çalışmalarını geciktirmek için tek tırnak kullanmak. İşte t
varolan bir ssh aracı işlemine yeni bir kabuk eklemek için kullanılan ve diğer adıyla ssh-start
, bir homedir'deki bir dosyaya kabuk kodu yazan bir diğer adla başlayan bir diğer ad :
mymistress:~> which ssh-start
ssh-start: aliased to eval `ssh-agent | tee ~/.ssh/ssh-agent.out` ; ssh-add ~/.ssh/id_rsa
mymistress:~> grep "alias t" .zshrc
alias t="eval `cat ~/.ssh/ssh-agent.out`"
mymistress:~> which t
t: aliased to eval SSH_AUTH_SOCK=/tmp/ssh-nZBZp29804/agent.29804; export SSH_AUTH_SOCK;\nSSH_AGENT_PID=29805; export SSH_AGENT_PID;\necho Agent pid 29805;`
Bu tanım t
kötüdür, çünkü yeni bir çalışmadan alınan yeni bilgilerin ssh-start
göz ardı edilmesine neden olur . t
.Zshrc içinde tek tek alıntılanacak olan diğer ad tanımını değiştirmek çok daha iyi davranış sağlar:
mymistress:~> grep "alias t" .zshrc
alias t='eval `cat ~/.ssh/ssh-agent.out`'
mymistress:~> source ~/.zshrc
mymistress:~> which t
t: aliased to eval `cat ~/.ssh/ssh-agent.out`
Çift tırnakların (komutların veya ortam değişkenlerinin anında yerinde genişletilmesi) ve tek tırnakların (komutların ve değişkenlerin gecikmeli değerlendirilmesi) etkilerini gösteren , tanımının t
sağladığı şekilde genişlediğine dikkat edin which t
.