當我從命令列建立此別名時,一切正常 aliasjecta='for I 在 1 2 3;執行 /usr/sbin/diskutil unmountDisk disk$I;done'
當在 .bash_profile 中建立相同的別名時。作業系統刪除“$I”
這是一個新手問題,但我很不好意思地說我找不到解決方案。我是否必須創建一個腳本並讓別名引用它?
答案1
你正在嘗試的應該有效。$I
當您定義別名時,可能正在評估。這可能意味著您在某處遺漏了一些引號。
但是,如果不包含 .bash_profile 的相關部分,就很難說。
答案2
在您的問題中,您用單引號引起來別名,這是延遲變數評估的正確方法。我的猜測是您在中使用雙引號,.bash_profile
這允許立即評估變數。由於此時該變數可能未設置,因此其計算結果為空字串。