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, связав его с сценарием оболочки в Linux?
  • Ошибка: .onLoad failed в loadNamespace () для 'cairoDevice' на Linux-машине
  • Как установить R Vennerable в Debian?
  • Gsub поддерживать строку между ними;
  • Запустить R-код из vim-r-plugin в виде отдельного окна вместо внутреннего tmux / screen?
  • Как изменить% Hh% M на% M в R CSV?
  • Как найти что-нибудь эквивалентное как R poppler в Debian?
  • Длительный R-скрипт автоматически убивается
  • 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, должно быть.

    Interesting Posts

    Что делать, если результат из pipe не является последним аргументом в следующей команде

    8-битный USB-накопитель случайным образом отключает

    Пунктуация заклинания Vim для ⸮

    Невозможно установить фоновый рисунок в Gnome 3

    Я что-то испортил, случайно вставив «/ etc / inittab» в оболочку?

    вызов неудачного рейда5

    Фильтрация многострочных строк из журнала

    Крепление NFS: занято устройство или ресурс

    IBM AIX: Как настроить отправку SSH X на непривилегированного пользователя без дома?

    Поведение 1> & 0 в bash

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

    делает головной вход> вывод копирует все невидимые символы в новый файл?

    Проблемы с доступом к моему телефону через USB

    Почему у меня нет настроек hidraw в моей системе и как я могу исправить свои устройства USB?

    Выполнить команду на основе результата предыдущей команды (без сбоя всего оператора)

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