Bash에서 두 문자열 비교


13

변수를 설정하는 데 rmdir사용하는 비밀번호로 확인한 후 디렉토리를 삭제하는 스크립트를 만들고 싶습니다 read.

지금까지 나는 이것을 가지고있다 :

#!/bin/bash -x
echo "Password:"
read -t 30 S1
    S2='55555'
if [ $S1=$S2 ]; then
    rmdir /home/william/test
else
    echo "fail"
sleep 10
fi

따라서 -x디버깅을 시도해야하지만 스크립트가 에코되지 않을 때마다 (암호를 잘못 입력하면) 또는 필요한 디렉토리를 제거하지 않습니다.

누군가 내가 사용할 수있는 수정 가능한 스크립트가 있거나 현재 스크립트의 문제를 지적 할 수 있다면 좋을 것입니다.

답변:



6

bash 스크립팅에서는 두 가지 변수를 아래 방법과 비교해야합니다.

if [ "var1" != "var2" ]; then
  Do something
fi;

공간이 중요하다


4

test예를 들어 GNU를 사용할 수도 있습니다 .

test s1 = s2 && echo Equal || echo Not equal

귀하의 상황에서,

test "$S1" = "$S2" && rmdir -v /home/william/test
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.