2016-12-25 46 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这个答案无法退出脚本时,找不到原来的帖子所需的行。 –