我的脚本包含:
#### #!/usr/bin/sh
FILE="/home/steven/.bash_profile"
STRING="export PATH="$PATH:/opt/mssql-tools/bin""
if [ -z $(grep "$STRING" "$FILE") ]; then
echo 'the string is exist' >&2
else
echo 'the string doesnt exist' >&2
fi
我的文件包含:
#### # .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
#### # User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
为什么它总是返回存在?
答案1
我们应该转义STRING 变量中的$
and 。"
否则会扩大$PATH
将其声明为:
STRING="export PATH=\"\$PATH:/opt/mssql-tools/bin\""
正如@muru 所评论的,尝试作为
if grep -q "$STRING" "$FILE" ; then
echo 'the string exists' ;
else
echo 'the string does not exist' ;
fi
由于export
文件 bashrc 的第 12 行缺少该文件,因此它总是报告它不存在。