cdTakma ad ikamesinden sonra yapışmasını istemiyorsanız, (y ile bir alt kabuk kullanın ):
alias my_x="(cd /home/path_to_x && ./x)&"
kontrol edebilirsin
alias test_y="(cd /tmp && sleep 10 ) & "
Not çözümü
alias my_y="/home/path_to_x/x"
tam olarak eşdeğer değildir. Aslında, aracılığıyla denilen eğer my_x, xprogram geçerli dizinde ile çalıştırılan /home/path_to_x/tarafından çağrılan eğer ederken, my_y, xkomut biri olan geçerli dizinde ile çalıştırılır my_yyayınlandı. Bu, ne xyaptığına bağlı olarak önemli olabilir veya olmayabilir .
Hakkında OP çözümü , bu çalışır bash:
romano@RRyS:~$ pwd
/home/romano
romano@RRyS:~$ alias x="cd /bin && ./echo A >/dev/null &"
romano@RRyS:~$ x
[1] 16611
romano@RRyS:~$ pwd
/home/romano
ama içinde değil zsh:
[romano:~] % pwd
/home/romano
[romano:~] % alias x="cd /bin && ./echo A >/dev/null &"
[romano:~] % x
[1] 16744
[1] + 16744 done ./echo A > /dev/null
1& [romano:/bin] % pwd
/bin
[romano:/bin] %
Görünüşe göre bash ve zsh listeleri farklı şekillerde yürütüyor ... bu yüzden açık parantez eklemek daha iyi ... bana işaret ettiği için teşekkürler @EliahKagan.
alias x='/home/path_to_x/x'. Daha.önce kullanma/home..(nokta) geçerli dizini ifade eder.