bash / cygwin сломан после установки rtool?

Обычно я могу решать проблемы самостоятельно (и Google). Но в последнее время меня озадачивает эта странная икота.

Справочная информация. Я использую цепочку скриптов для обработки файлов (в Windows под Cygwin. Сценарии также запускаются на OS X с помощью gnu baseutil). Через один день после установки Rtools мои скрипты перестали работать. После долгих хлопот мне удалось выявить проблему.

Проблема: у меня есть следующая строка:

key=$( echo "$foo" | tr -d - | tr '[:upper:]' '[:lower:]' ) 

где $foo – это еще одна текстовая переменная. Я удаляю тире в $foo и конвертирую его в нижний регистр. Сценарий работал тысячи раз.

Но теперь это не так. Если я убегу

 echo "Blah-Bleh" | tr -d - | tr '[:upper:]' '[:lower:]' 

Я получаю blahbleh который ожидается. Но если я это сделаю

 a=$(echo "Blah-Bleh" | tr -d - | tr '[:upper:]' '[:lower:]') echo $a 

Я ничего не получаю. $a пуст, а [[-z $ a]] возвращает true . Однако, если я вернусь к старым backdick школам, команда снова работает:

 a=`echo "Blah-Bleh" | tr -d - | tr '[:upper:]' '[:lower:]'` echo $a 

дает blahbleh .

Теперь я могу заменить все подстановки команд более старым стилем, но это скорее обходное решение, чем решение. Итак, мой друг StackExchangers, что мне не хватает и как я его исправить? Это действительно раздражает.

пс. Моя собственная диагностика пока:

  • Удаление Rtools не помогло;
  • Перезагрузка машины не помогла;
  • Переустановка каждого пакета Cygwin не помогла;
  • версия bash – 4.3.42 (4);
  • Прямо сейчас у меня нет абсолютно ничего в ~/.bashrc , ~/.bash_profile , ~/.profile , /etc/profile и /etc/bash.bashrc . Не знаю, до Rtools;
  • Я не вижу ничего плохого в $PATH .

  • Запуск сценария R и глобальной переменной, переопределяющей << - от cron
  • Существует ли методика загрузки и загрузки пакета R без его установки?
  • GNU / R 'нет аудио-драйверов'
  • ess исчез из emacs
  • Как установить R 3.3.1 в моем собственном каталоге
  • Мне нужно удалить. в моих данных
  • Как выполнить скрипт R, связав его с сценарием оболочки в Linux?
  • secure apt R pgp key no_pubkeys найдено
  • One Solution collect form web for “bash / cygwin сломан после установки rtool?”

    Хорошо, после многих попыток и вытягивания волос мне удалось восстановить Cygwin в рабочем состоянии. Это то, что я сделал:

    1. Удалены Rtools
    2. Очищено и Windows% PATH% от всего, что связано с Cygwin / Rtools;
    3. Переустановил все пакеты Cygwin (из кеша);
    4. Восстановленный Cygwin;
    5. И перезагрузили компьютер чаще, чем нужно.

    Вернуться к работе…

    PS. Несмотря на то, что Cygwin снова работает, я обнаружил, что исходная строка, в которой я присваиваю значения массиву bash, больше не приводит к правильному результату. Пришлось изменить это

     read -r -a array <<<$(printf $string) 

    к этому

     array=($(printf $string)) 

    чтобы он работал. Должно быть, было обновление bash, должно быть.

    Linux и Unix - лучшая ОС в мире.