Shell-Script
處理文件路徑中的空格
我有這個:
muh_dir=`cd $(dirname "$BASH_SOURCE") && pwd`
是的,我測試了上面的內容(它有反引號),但它不適用於 pwd 中的空格。另一方面,這更好:
muh_dir="$(cd $(dirname "$BASH_SOURCE") && pwd)"
我的問題是 - 這會在我的命令中添加 3 個字元,我的編輯器中的語法會發生變化。第一種方法要好得多..無論如何用較短的語法來處理空格還是我只是咬緊牙關?
您的兩個程式碼範例都將失敗:
muh_dir=
cd $(dirname “$BASH_SOURCE”) && pwdmuh_dir="$(cd $(dirname "$BASH_SOURCE") && pwd)"
您必須添加的最少引號是:
muh_dir=`cd "$(dirname "$BASH_SOURCE")" && pwd` ^ ^ Note the quotes.
但是,請,請!,使用
$(...)
:muh_dir=$(cd "$(dirname "$BASH_SOURCE")" && pwd)
了解報價,然後使用更多報價™。這確實是你能做的最簡單的事情。
順便說一句,任何程式碼最重要的屬性是它的可維護性。字元數與可維護性的相關性非常微弱——將三個字元添加到 45 個(增加 6.7%)來處理空格甚至不會遠端觸發我的程式碼鼻子。