Я перебираю массив целых чисел ${startTimes}
(местоположения маркеров в аудиофайле, в сэмплах) и использую bc
для преобразования этих целых чисел в миллисекунды. Я передаю результаты в новый массив ${msValuesArray}
. Если я запускаю каждый элемент массива по одному, он работает нормально. Если я запускаю его в цикле for
:
for i in $(seq 0 ${#startTimes[@]}); do
msValuesArray+=($(bc <<< ${startTimes[i]}/44.1))
done
Полученное ${msValuesArray}
содержит ожидаемые результаты, но терминал выводит (standard_in) 1: parse error
.
Хотя я намереваюсь использовать это в сценарии оболочки, и, прочитав здесь другие вопросы, я узнал, что добавление #!/bin/bash
в начало команды позволяет избежать ошибки синтаксического анализа, я до сих пор не понимаю следующее:
а) почему ручная передача элемента ${startTimes}
в bc
работает без ошибки синтаксического анализа, в то время как цикл for
также работает, но выводит ошибку синтаксического анализа (вне сценария оболочки)?
б) несмотря на ошибку синтаксического анализа, у меня есть результирующий массив, который я хочу. Должен ли я игнорировать ошибку?
в) при добавлении #!/bin/bash
в начало команд (еще вне шелл-скрипта, просто в командной строке) почему результаты недоступны? (Ввод echo ${msValuesArray[@]}
возвращает пустой массив.)
d) При работе внутри сценария оболочки происходит та же ошибка, но просто не печатается на терминал?
Любая помощь приветствуется. Спасибо.
starts
? Имеет ли он то же количество элементов, что иstartTimes
? Это весь ваш сценарий? Как вы его запускаете? Что вы имеете в виду, добавляя#!/bin/bash
в командную строку? - person Benjamin W.   schedule 29.08.2017startTimes
. У меня еще нет всего сценария, я просто проверяю команды по одной в командной строке, чтобы убедиться, что мой сценарий будет работать (если есть лучший метод, я весь внимание). Для шебанга, если я ввожу все это#!/bin/bash; for...(etc)...; done
в командную строку, я не получаю ошибки синтаксического анализа, но также и никаких доступных результатов. Я предполагаю, что он работает в другой оболочке, к которой я не могу получить доступ? Еще учусь, видимо. - person Urphänomen   schedule 29.08.2017startTimes
выглядит так:0 87053 91463 190062 194472 290520 294930 387582 391992
. Просто набор целых чисел. - person Urphänomen   schedule 29.08.2017