2016-10-20 2 views
0

У меня проблемы с нижним индексом слов из текстового файла. Я бегу на Bash 4.4 (OS X), и это должно быть возможно сделать это с помощью двух запятых после переменной, но бросить мне ошибку:

${line,,}: bad substitution

Вот мой простой код:

filename=textfile.txt 
while read -r line 
do 
     word="${line,,}" 
     echo "$word" 
done < "$filename" 

Есть идеи? Большое спасибо!

+1

ваш код работает в моей среде Linux, которая содержит bash 4.3.46, как вы подтвердили, что используете 4.4? попробуйте поместить 'echo $ BASH_VERSION' в свой код, чтобы проверить версию. – ymonad

+0

получил ту же ошибку в '3.1.7 (1) -release' bash. Однако он работал для более поздних версий. –

+0

Возникла проблема. Когда я запускаю команду 'bash --version', она возвращает' version 4.4.0 (1) -release', но когда я запускаю команду ($ BASH_VERSION) в коде, она возвращает '3.2.57 (1)' любые идеи? Благодаря! – prone666

ответ

1

Я нашел решение для своего ответа, поэтому было бы полезно, если бы кто-то разместил его там. Когда я обновил bash, он обновился только до каталога usr, поэтому при запуске #!usr/local/bin/bash он будет работать правильно. Для обновления bash в глобальном масштабе см. Этот учебник: http://clubmate.fi/upgrade-to-bash-4-in-mac-os-x/