Linux
linux命令在腳本中有不同的行為
我正在嘗試創建一個腳本,如果我的磁碟陣列出現故障,它會做一些事情。當我執行命令時,它必須返回數字 4(
grep
計算 4 次 OK,每個磁碟一次)。然後我想檢查是否有 4 個或更少的 OK 並做一些事情。
這是我的腳本:
#!/bin/bash $okdevices = hpssacli controller slot=4 physicaldrive all show | grep -c "OK" if [ $okdevices -lt 4 ] then echo "disk missing" fi
這將返回一個錯誤,指出它需要一個一元運算符。
錯誤的命令輸出分配給變數,您正在評估字元串“hpssacli controller slot=4 physicaldrive all show | grep -c OK”和“4”
這應該有效:
#!/bin/bash okdevices="$(hpssacli controller slot=4 physicaldrive all show | grep -c OK)" if [ $okdevices -lt 4 ]; then echo "missing disk" fi