我有一個包含以下行的腳本:猛砸路徑問題
propFile="${0%/*}/anteater.properties"
- 什麼是 「$ {0%/ *}」 是什麼意思?
- 此命令給出了腳本的路徑 - 但路徑中有空格,腳本找不到此文件 - 如何處理它?
我有一個包含以下行的腳本:猛砸路徑問題
propFile="${0%/*}/anteater.properties"
%
運算符在變量擴展中刪除了給定的匹配後綴模式。因此${0%/*}
採用變量$0
,並在最後刪除所有匹配的/*
。這相當於命令dirname
,它在給定路徑時返回該路徑的父目錄。
爲了處理bash變量中的空格,只要展開變量(即,無論何時寫入$var
),都應該引用它。總之,總是使用"$var"
而不是隻有$var
。
考慮在bash手冊中閱讀shell parameter expansion和variable quoting以瞭解有關這兩個主題的更多信息。
去掉後綴匹配/*
,即最後一個斜線之後的一切,包括斜槓本身。
無論你在哪裏使用它(cat "$propFile"
)都會引用它。
引用絕對有效。然而,如果你想直接引用一個帶有空格的文件名,你可以用\字符來轉義你的空格。 – asf107
@ asf107,如果你想每次都想引用一個存放在變量中的文件名 - 引用它。以防萬一。 –