2016-12-25 41 views
0

這個bash腳本在Mac終端上運行時,需要詢問用戶輸入,然後需要檢查給定文件中是否存在字符串"PLACEHOLDER_BACKEND_NAME="user-input",如果不是,則應退出腳本。Bash文件腳本轉義用戶輸入

echo -e "${YELLOW}enter app name${WHITE}" 
    read name 

line=grep $name /path/to/file/entrypoint.sh 

if [[ line != "PLACEHOLDER_BACKEND_NAME=\"$name\"" ]] ; then 
    exit 1 
fi 

它需要很多調整,因爲我不是很熟悉bash腳本。有什麼建議麼? THX

回答

1

你的代碼需要一些調整:

echo -e "${YELLOW}enter app name${WHITE}" 
read -r name 

if ! grep -q PLACEHOLDER_BACKEND_NAME="\"$name\"" /path/to/file/entrypoint.sh; then 
    exit 1 
fi 
+1

@gniourf_gniourf:所做的更改,按您的建議。謝謝! – codeforester

+0

@codeforester另外:你可能想使用'fgrep'而不是'grep',因爲'$ name'中意外的特殊正則表達式語法可以對'grep'做些有趣的事情。此外,你還應該考慮使用'-x',因爲你想匹配整條線,對吧? (爲了避免來自子串匹配的誤報)。 – user268396

+0

@codeforester這個答案無法退出腳本時,找不到原來的帖子所需的行。 –