COUNTER=0
let COUNTER=COUNTER+1
count=`ssh -i /var/www/.ssh/id_rsa_root -o stricthostkeychecking=no $host $cmd`
count1=`echo $count | awk '{print $4}'`
printf "count1 : $count1\n"
result1=${count1/.*}
if [ "$result1" -ge "0" ]; then
echo $host
else
echo $host
exit
fi
Если значение $result1
является INTEGER и больше нуля, это будет Гото IF цикл (отлично работает для меня)[:: целое выражение ожидается
Но когда это не INTEGER, он приходит к другому петли (которые она, предполагают, чтобы сделать) с помощью следующей ошибки в выходном
line 55: [: : integer expression expected
, но я не хочу выше ошибки в моем выходе. Я пытался использовать 2>/dev/null
с этим, но не повезло.
, пожалуйста, помогите!
проверить код с http://shellcheck.net – Jahid
Кроме того, если вы используете 'sh -x yourscript' для запуска этого, вы увидите значение _actual_, поэтому вы сможете увидеть, как/почему это не целое число. –
Кроме того, вы используете 'printf' неправильно. Не подставляйте в строку формата; вместо этого используйте строку формата, чтобы сообщить системе, как выполнять подстановки: 'printf 'count1:% s \ n'" $ count1 "' –