2015-01-12 4 views
0

Я получаю Получение (standard_in) 1: проанализировать ошибку с помощью кода ниже.Получение (standard_in) 1: ошибка синтаксического анализа с помощью команды bc

#!/bin/sh 
base=01C71C 
mid=0 
end=0 
for mid in {0..15..1} 
do 
for end in {0..15..4} 
do 
    if ((mid > 9)) 
    then 
     mid_hex=`echo "obase=16;ibase=10; $mid" | bc` 
    else 
     mid_hex=$mid 
    fi 
    end_hex=`echo "obase=16;ibase=10; $end" | bc` 
    reg=$base$mid_hex$end_hex 
    phymem32 $reg >> osd.txt 
done 
done 

Пожалуйста, наставит меня, где я не прав, и какие альтернативы могут быть сделаны здесь, чтобы заставить его работать так же. Thank.

+0

работает для меня. Однако '{0..15..1}' является конструкцией bash, поэтому '#!/Bin/sh', вероятно, является проблемой:' mid = '{0..15..1}'; echo "obase = 16; ibase = 10; $ mid" | bc' –

ответ

1

Проблема эта лачуга:

#!/bin/sh 

Поскольку вы используете BASH 4 специфическую функцию, т.е. {0..15..1} и т.д. Вы должны использовать:

#!/bin/bash 

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

  • Нет связанных вопросов^_^