Linux 명령은 스크립트에서 다른 동작을 갖습니다.

Linux 명령은 스크립트에서 다른 동작을 갖습니다.

디스크 어레이에 오류가 발생할 경우 작업을 수행하는 스크립트를 만들려고 합니다. 명령을 실행하면 숫자 4가 반환되어야 합니다( grep"OK"라는 단어는 각 디스크에 대해 한 번씩 4번 계산됩니다).

그런 다음 OK가 4개 이하인지 확인하고 몇 가지 작업을 수행하고 싶습니다.

이것은 내 스크립트입니다.

#!/bin/bash
$okdevices = hpssacli controller slot=4 physicaldrive all show | grep -c "OK"
if [ $okdevices -lt 4 ]
then
    echo "disk missing"
fi

단항 연산자가 필요하다는 오류가 반환됩니다.

답변1

변수에 할당된 명령 출력이 잘못되었습니다. "4"를 사용하여 "hpssacli 컨트롤러 슬롯=4physicaldrive all show | grep -c OK" 문자열을 평가하고 있습니다.

이것은 작동합니다:

#!/bin/bash
okdevices="$(hpssacli controller slot=4 physicaldrive all show | grep -c OK)"
if [ $okdevices -lt 4 ]; then
    echo "missing disk"
fi

관련 정보