我有打算處理一個服務器的一些基本的grep的檢查〜/ .m2目錄/ settings.xml中設定一個shell腳本如下功能:用grep來檢查文件內容中隱藏的目錄
SETTINGS_FILE="~/.m2/settings.xml"
SETTINGS_SERVER_ID="<id>ossrh</id>"
check_settings() {
echo grep "$1" "$SETTINGS_FILE"
if grep -q "$1" "$SETTINGS_FILE"; then
echo "Server is set up...\n"; else
echo "DEPLOY FAILED:\n\t$1 not found in ${SETTINGS_FILE}!
fail "Fail :(";
fi
return 0
}
check_settings $SETTINGS_SERVER_ID
不幸,這將導致以下消息:
grep <id>ossrh</id> ~/.m2/settings.xml
grep: ~/.m2/settings.xml: No such file or directory
DEPLOY FAILED:
<id>ossrh</id> not found in ~/.m2/settings.xml!
Fail :(
同時,只使用grep "<id>ossrh</id>" ~/.m2/settings.xml
在Bash返回<id>ossrh</id>
,預計。
我想知道這是否是一個可見性問題 - grep是否可以在隱藏目錄中看到事物(不太可能,考慮this question)或者它是否與我傳遞grep的參數有關(可能,考慮新的我要shell腳本)
這將更加清晰,如果第一個' /'在引號內。 – BroSlow
@BroSlow但它不會這樣工作。嘗試一下。 –
有趣的是,不知道只有在用'/'連接或用空白包圍時擴展了代字號。學到了新東西,謝謝/ + 1 – BroSlow