내 스크립트에는 다음이 포함됩니다.

내 스크립트에는 다음이 포함됩니다.

내 스크립트에는 다음이 포함됩니다.

#### #!/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 변수에서 및를 이스케이프 처리해야 합니다 $. "그렇지 않으면 확장됩니다$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

exportbashrc의 12번째 줄에 파일이 없기 때문에 항상 파일이 존재하지 않는다고 보고합니다.

관련 정보