os_version=$(cat /etc/issue |grep Ubuntu)
if $os_version
then
echo found
else
echo notfound
fi
Ubuntu 컴퓨터에서 시도하면 ./test: line 2: Ubuntu: command notfound notfound가 표시됩니다.
이것은 나에게 효과적이지만 변수에 할당하고 싶습니다.
if cat /etc/issue |grep Ubuntu
then
echo found
else
echo notfound
fi
답변1
성명서 if
에는 다음과 같은 내용이 기재되어 있습니다.주문하다, 종료 상태를 확인하세요. $os_version
이를 명령으로 사용하는 방법은 이를 확장하고 결과 명령줄을 실행하는 것입니다. 따라서 변수에 가 포함되어 있으면 인수 등 으로 호출된 명령을 Ubuntu 18.04.1 LTS \n \l
실행하려고 시도합니다 .Ubuntu
18.04.1
LTS
당신은 사용하고 싶을 수도 있습니다
if [ -n "$os_version" ]; then
...
fi
변수가 비어 있는지 확인합니다( [ -n "$var" ]
비어 있지 않으면 true, [ -z "$var" ]
변수가 비어 있으면 true).
또는 편집에서와 같이 명령문 자체에서 이를 사용 grep
하고 거기에 변수를 설정할 수 있습니다.if
distro=unknown
if grep -q Ubuntu < /etc/issue; then
distro=ubuntu
fi
# ... later
if [ "$distro" = ubuntu ]; then
# do something Ubuntu-specific
fi
답변2
grep -q Ubuntu /etc/issue && echo found || echo not found