2017-03-23 51 views
0

我們正在運行腳本來查找zfs文件系統監視併發生如下錯誤。 說法預期./test.ksh[9]:[:expected expected

#!/bin/sh 
USED_SPACE_PERCENT_WARN=20 
PATH=/usr/bin:/usr/sbin; export PATH 
# check zfs File system 
if [ `df -F zfs | wc -l` -gt 0 ]; then 
    /usr/sbin/zpool list -H | while read line 
    do 
    USED_SPACE_PERCENT=`echo "$line" | nawk -F'[ % ]+' '{print $5}'` 
    if [ $USED_SPACE_PERCENT -gt $USED_SPACE_PERCENT_WARN ]; then 
     POOL=`echo "$line" | nawk -F'[  % ]+' '{print $1}'` 
     echo "ZFS pool $POOL has used $USED_SPACE_PERCENT% of its space." 
    fi 
    done 
fi 
+0

檢查代碼與[shellcheck.net](http://shellcheck.net) – codeforester

+1

@codefore ster shellcheck.net不知道'ksh',所以結果是可疑的。 – chepner

回答

0

當USED_SPACE_PERCENT是空的(不含5場線),命令

if [ $USED_SPACE_PERCENT -gt $USED_SPACE_PERCENT_WARN ]; then 

會變成

if [ -gt 20 ]; then 

,並導致錯誤

+0

感謝Walter爲您提供幫助,但USED_SPACE_PERCENT並非爲空(第5行)rpool 596G 279G 317G 46%1.00x ONLINE - rpool1 1016G 441G 575G 43%1.00x ONLINE - –

+0

嘗試使用'set -x'或'echo'USED_SPACE_PERCENT = $ USED_SPACE_PERCENT「'或'if [」$ USED_SPACE_PERCENT「-gt 20]' –