Проверьте ответ через скрипт - PullRequest
0 голосов
/ 03 декабря 2018

Простите за основной вопрос, но у меня нет идей, чтобы попробовать, и я новичок, когда дело доходит до написания сценариев.Мне нужно проверить виртуальную машину, чтобы убедиться, что она включена, прежде чем выключить ее.Вот что я пытаюсь:

(игнорируйте переменные, я использую их в нескольких других функциях, и все они работают нормально)

function powerOff(){
    ssh $IP_ADDR 'vim-cmd vmsvc/power.getstate '$VM_ID' | grep Powered'
    if [ "${1}" == "Powered off" ]; then 
        echo "The VM is already off"
    elif [ "${1}" == "Powered on" ]; then
        ssh $CENTOS_IP 'init 0'
    else
        echo "You are horrible at this and your script is failing"
    fi
}

"power.getstate«возвращает либо« Включен », либо« Выключен », так как я его извлекаю.

Я тестирую это на виртуальной машине, которая уже запущена, поэтому я хочу, чтобы ответ был« Эта виртуальная машина ужена".Вместо этого я получаю выходные данные команды getstate (что нормально, но я бы даже не увидел выходных данных), а затем он говорит мне, что я ужасен в этом.Есть предложения?

1 Ответ

0 голосов
/ 03 декабря 2018

Поймать результаты в переменной.

function powerOff(){
    powerfield=$(ssh $IP_ADDR 'vim-cmd vmsvc/power.getstate '$VM_ID' | grep Powered')
    if [ "${powerfield}" == "Powered off" ]; then 
        echo "The VM is already off"
    elif [ "${powerfield}" == "Powered on" ]; then
        ssh $CENTOS_IP 'init 0'
    else
        echo "You are horrible at this and your script is failing"
    fi
}
...