올바른 버전의 데몬을 설치하는 일부 스크립트를 시도하고 테스트하고 있지만 먼저 코드에서 실제로 실행 중인지 확인하고 데몬의 버전을 확인하고 싶습니다(그러면 강제로 다운로드 및 업데이트됩니다). 하지만 시작하자마자 막혔어요.
#!/bin/bash
RED='\033[0;91m'
GREEN='\033[1;32m'
YELLOW='\033[1;33m'
NC='\033[0m'`
#Checking Server status
/usr/local/bin/evos-cli getinfo
if [[ "/usr/local/bin/evos-cli getinfo" = "error: couldn't connect to server" ]];
then
echo -e "${GREEN}I will start Evos server then i check for version... ${NC}"
evosd
sleep 10s
else
echo -e "${GREEN} Server is running i check for the version soon! ${NC}"
sleep 2s
fi
#Version Checking
/usr/local/bin/evos-cli --version
if [[ "/usr/local/bin/evos-cli --version" = "Evos Core RPC client version v1.1.3.0-2ba4298" ]];
then
echo -e "${GREEN} Version of wallet is correct! ${NC}"
else
echo -e "${YELLOW} Version of wallet is Incorrect! ${NC}"
fi
#Checked Status
sleep 3s
echo -e "${YELLOW} Status Checked! ${NC}"
데몬에는 많은 명령이 있으며 서버가 중지된 상태에서 명령을 입력하면 "오류: 서버에 연결할 수 없습니다"라는 메시지가 표시됩니다. 따라서 else
"오류: 서버에 연결할 수 없습니다"가 작동할 때 옵션을 트리거 하고 싶습니다. 발생하지 않습니다. 서버가 트리거 명령을 중지하더라도 else
명령은 서버 프로세스 시작을 건너뛰고 서버가 실행 중이라고 말합니다. else
버전 검사기는 버전이 제공된 명령과 일치하더라도 옵션을 실행합니다. 이 코드를 사용하면 올바른 버전이 실행됩니다. (하지만 코드에는 올바른 내용이 있으므로 쓸모가 없습니다.)
/usr/local/bin/evos-cli --version
if [ "/usr/local/bin/evos-cli --version Evos Core RPC client version v1.1.3.0-2ba4298" ];
then
echo -e "${GREEN} Version of wallet is correct! ${NC}"
else
echo -e "${YELLOW} Version of wallet is Incorrect! ${NC}"
fi
#Checked Status
sleep 3s
echo -e "${YELLOW} Status Checked! ${NC}"
evos-cli getinfo
, 또는 /usr/local/bin/evos-cli getinfo
터미널에서 명령을 트리거하는 방법의 예입니다.
다양한 변형을 시도했지만 알아낼 수 없습니다.
답변1
테스트 중
if [[ "/usr/local/bin/evos-cli getinfo" = "error: couldn't connect to server" ]];
비교하고 싶은 것 같군요산출/usr/local/bin/evos-cli getinfo
문자열 에 . 너 뭐야아마도이 특정 테스트에서 수행하려는 작업은 명령이 성공했는지 테스트하는 것입니다.
이건 지나갈 거야
if /usr/local/bin/evos-cli getinfo >/dev/null 2>&1; then
# this worked
else
# the command failed
fi
명령의 출력을 비교하려면 명령 대체를 사용하십시오.
if [ "$(/usr/local/bin/evos-cli --version)" = "Evos Core RPC client version v1.1.3.0-2ba4298" ]; then
# version was the expected string
else
# we got an unknown version
fi
또는 문자열의 첫 번째 부분만 일치시키려면 bash
,
if [[ "$(/usr/local/bin/evos-cli --version)" == "Evos Core RPC client version v1.1.3.0"* ]]; then
# version was the expected string
else
# we got an unknown version
fi