Как сохранить результат запроса в переменную?

Вопрос неясен, так как некоторая информация отсутствует. Давайте просто попробуем с тем, что у нас есть ... Предположим, что IP-адрес 10 сервера - 192.168.1.11..192.168.1.20:

#!/bin/bash

for host in 192.168.1.{11..20}
do
    echo "#############################################################################"
    echo "$host:"
    # check if host is alive, if positive, then execute command in remote server
    ssh -q -o ConnectTimeout=10 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet user@$host exit
    if [ $? -ne 0 ];then 
        echo -e "\033[0;101m\033[1;37mOFFLINE\033[0m"
    else
        ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet user@$host "execute_command"
    fi
done

Теперь сохраните сценарий оболочки и перенаправьте stdout и stderr в файл журнала.

./script.sh &> log.txt
0
22.04.2019, 15:52
2 ответа

Как правило, присваивание переменной сценария оболочки следует этому подходу:

variable=value

Чтобы получить доступ к значению, хранящемуся в переменной, вы добавляете перед ним символ $. Если вы хотите сохранить выходные данные команды, вы должны заменить ls -alhсвоей собственной командой запроса:

#!/bin/bash

S1="$(ls -alh)"
echo "$S1"
0
28.01.2020, 03:47

Попробуйте это,

S1=`mysql -h $IP -u $UserName -p$Password $DBName -e "SELECT COUNT(*) FROM table1" | grep -v COUNT`
echo $S1

где,

  • IP, UserName, Passwordи DBName, где IP-адрес, пользователь, пароль, база данных вашего сервера MySQL.
0
28.01.2020, 03:47

Теги

Похожие вопросы