1
在包含空格的文件夾中爲二進制工具創建別名時,別名已正確存儲,但調用該命令時,空間的計算方式與未正確取消一樣。Shell別名其中空白取消
該二進制文件可在$PATH
中查看。我從zsh 4.3.11和bash 3.2.48運行了這兩個文件,結果都一樣。
二進制路徑
~/Test Folder/fooBinary
別名
alias foo="`which fooBinary`"
這導致
foo='~/Test Folder/fooBinary'
現在
[shell]: no such file or directory: ~/Test
調用這個別名結果
這用於逃避從別名間距,我沒有打擾檢查我的舊shell的版本,或者我會去找它。
的我沒有真正逃脫間距:
alias foo="'`which fooBinary`'"
我的問題:
爲什麼空間在所列出的別名評估?
有沒有更好的轉義方式which
?
如果'fooBinary'由'which',然後'fooBinary'是在你的'PATH中找到'並且可以作爲'fooBinary'被調用,而不用擔心完整的路徑。別名「alias foo = fooBinary」也應該可以工作。 – chepner
不幸的是,它沒有。要麼因爲我需要傳遞參數或其他問題。當我嘗試這種方式時,我得到一個錯誤響應,因此需要引用轉義'which'。 – cdbitesky