Когда я пытаюсь выполнить код javascript с помощью --eval, оболочка mongo генерирует дополнительный вывод, опция --quiet, похоже, не работает
check_mongodb_availability() {
local hostname=$1
local database=$2
local js=" var found = 0;
var dbs = db.getMongo().getDBNames();
for(var i in dbs) {
if (dbs[i].toString() == '"${database}"') found = 1;
}
if (found === 1) print(true); else print(false);
"
if [ $(mongo --host $hostname --eval "$js" --quiet) == "true" ]; then
return 1
else
return 0
fi
}
Вышеприведенная функция не может сказать «слишком много аргументов»
Это дает нижний вывод
2019-10-10T10:37:57.262+0000 I NETWORK [js] Starting new replica set monitor for replicaSet/172.31.79.62:27017,172.31.69.171:27017,172.31.73.190:27017 2019-10-10T10:37:57.263+0000 I NETWORK [js] Successfully connected to 172.31.69.171:27017 (1 connections now open to 172.31.69.171:27017 with a 5 second timeout) 2019-10-10T10:37:57.263+0000 I NETWORK [ReplicaSetMonitor-TaskExecutor] Successfully connected to 172.31.79.62:27017 (1 connections now open to 172.31.79.62:27017 with a 5 second timeout) 2019-10-10T10:37:57.264+0000 I NETWORK [js] changing hosts to replicaSet/172.31.79.62:27017,mongodb-replica-2:27017,mongodb-replica-3:27017 from replicaSet/172.31.69.171:27017,172.31.73.190:27017,172.31.79.62:27017 2019-10-10T10:37:57.265+0000 I NETWORK [ReplicaSetMonitor-TaskExecutor] Successfully connected to mongodb-replica-2:27017 (1 connections now open to mongodb-replica-2:27017 with a 5 second timeout) 2019-10-10T10:37:57.265+0000 I NETWORK [js] Successfully connected to mongodb-replica-3:27017 (1 connections now open to mongodb-replica-3:27017 with a 5 second timeout) true
Мне нужно напечатать только «true» или «false», избегая всех лишних шумов
Любая помощь в этом очень ценится!