rtoolのインストール後にbash / cygwinが破損していますか?

rtoolのインストール後にbash / cygwinが破損していますか?

通常、自分自身(およびGoogle)が理解できます。ところが最近、このような奇妙な現象のために混乱してしまいました。

背景:私は一連のスクリプトを使用してファイルを処理します(WindowsではCygwinで、スクリプトはOS Xでもgnu baseutilを使用して実行されます)。設置してから1日でリアルタイムツール、私のスクリプトが動作を停止しました。紆余曲折の最後にようやく問題を発見しました。

問題:次の行があります。

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。しかし、昔ながらのバックティックに戻ると、コマンドは再び機能します。

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

与えられたblahbleh

今私できるすべてのコマンド置換を以前のスタイルに置き換えましたが、これは解決策ではなく回避策に近いです。それでは、StackExchangerの同僚の皆さん、私は何を逃したのですか?本当に迷惑です。

PSこれまで私の診断は次のとおりです。

  • Rtoolsを削除しても役に立ちません。
  • 機械を再起動しても役に立ちませんでした。
  • 再インストールすべてCygwinパッケージは役に立ちません。
  • bashバージョンは4.3.42(4)です。
  • ~/.bashrc今、、、~/.bash_profileには何もありません~/.profile。 Rtools以前はわかりません。/etc/profile/etc/bash.bashrc
  • 問題が何であるかわかりません$PATH

ベストアンサー1

まあ、多くの操作と引っ張りの終わりにCygwinを再び操作順序に戻すことができました。これが私がしたことです:

  1. 削除されたRtools
  2. Cygwin/Rtools 関連エントリの Windows %PATH% をクリアします。
  3. キャッシュからすべてのCygwinパッケージを再インストールしました。
  4. 再設計されたCygwin;
  5. 必要以上にコンピュータを再起動しました。

また仕事に戻ります...

PS。 Cygwinは再び動作しましたが、bash配列に値を割り当てる元の行がもはや正しい結果を生成しないことがわかりました。これを変えなければならない

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

これに関して

array=($(printf $string))

動作させる。 bash アップデートでなければなりません。そうする必要があります。

おすすめ記事