正しいバージョンのデーモンをインストールするいくつかのスクリプトを試してテストしていますが、まずコードで実際に実行されていることを確認し、デーモンのバージョンを確認したいと思います(それは強制的にダウンロードされ更新されます)。でも始まるやいなや詰まってしまいました。
#!/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