2016-08-27 2 views
-2

Я пытался заставить эту функцию работать. Я нахожусь в 17-дюймовом MacBook Pro в начале 2011 года. Установка всех переменных под «else» отлично работает, если вы запускаете их отдельно, они также эхо правильно. По какой-то причине, когда я помещаю их в функцию ... Я получаю синтаксическую ошибку на линии 12 иПеременная работает вне функции, внутренняя функция дает синтаксическую ошибку

battery() 
{ 
    BATTERYISPRESENT=`ioreg -l | grep Cycle` 
    if [[ $BATTERYISPRESENT != *'Cycle' ]] 
    then 
     echo "No Battery Present, Probably a desktop Mac." 
    else 
     BATTERYCYCLES=`system_profiler SPPowerDataType | grep "Cycle Count" | awk '{print $3}'` 
     BATTCURRCAP=`pmset -g batt | sed -n '2 p' | awk '{ print $2 }' | sed 's/;//g'` 
     BATTERYCHARGESTATUS=`system_profiler SPPowerDataType | grep "Charging" | awk '{ print $2 }'` 
     BATTERYISCHARGING=`system_profiler SPPowerDataType | grep -A 4 "AC Charger Information" | grep "Connected: " | awk '{ print $2 }'` 
     CHARGERISCONNECTED=`system_profiler SPPowerDataType | grep -A 4 "AC Charger Information" | grep "Connected: " | awk '{ print $2 }'` 
     echo $BATTERYCYCLES 
     echo $BATTCURRCAP 
     echo $BATTERYISCHARGING 
     echo $CHARGERISCONNECTED 
} 

выход читают:

линии 12: неожиданный EOF при поиске соответствия ``»

строка 18: ошибка синтаксиса: неожиданный конец файла

Любой помощи был бы очень благодарен.

+2

В следующий раз, когда у вас возникла проблема со сценарием оболочки, вы можете сэкономить некоторое время, если сначала вставьте его в [shellcheck.net] (http://www.shellcheck.net/). Если shellcheck не решит вашу проблему (или вы не понимаете сообщения об ошибках shellcheck), тогда перейдите к SO. – John1024

+0

Спасибо за подсказку! – cducasse

+1

Добро пожаловать в переполнение стека. Обратите внимание, что предпочтительный способ сказать «спасибо» здесь ответы на вопросы и полезные ответы (если у вас достаточно репутации, чтобы это сделать), и, приняв наиболее полезный ответ на любой интересующий вас вопрос (что также дает вам небольшой импульс для вашей репутации ). См. Страницу [About], а также [Как задать вопросы здесь?] (Http://stackoverflow.com/help/how-to-ask) и [Что мне делать, когда кто-то отвечает на мой вопрос ? ?] (http://stackoverflow.com/help/someone-answers) –

ответ

1

A fi на вас - вам не хватает fi в конце else.

+0

Благодарим за отзыв. Это фиксировало это. – cducasse

Смежные вопросы