Umi Uyuraのブログ

プログラミング関連の作業ログ

Cygwinの$PS1で関数を使うと構文エラーが発生した

個人Mac環境では、Bashプロンプトの表示をカスタマイズしています。

※これ自体はどなたかの設定をほぼ丸パクリさせていただいたものですが、入手元を失念してしまいました

dotfiles/bash_prompt

で、同じものをgnupackのCygwinでも使おうとしたところ、何やらエラーが発生。

command substitution: 行 1: 予期しないトークン `)' 周辺に構文エラーがあります
command substitution: 行 1: `prompt_git)'

f:id:umi-uyura:20170824234735p:plain

どうやらカレントディレクトリのGitステータスをプロンプトに表示する関数でエラーが発生しているもよう。

調べていると、同じ現象に対処された方を発見。

この記事を参考に、「 $''エスケープシーケンスを評価する」の方法を使い、

PS1+="\n" # Newline

となっていた箇所を

PS1+=$'\n' # Newline

に変更したところ、動くようになりました。

変更後のgnupack用の設定は以下のような感じ。

dotfiles-gnupack/bash_prompt

新しいLinuxの教科書

新しいLinuxの教科書