我的脚本包含:

我的脚本包含:

我的脚本包含:

#### #!/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 行缺少该文件,因此它总是报告它不存在。

相关内容