悪い例:$(/)の修飾子。 Linuxでログインして新しい画面を作成した後はいつでも表示されます

Linuxでログインして新しい画面を作成した後は常に次のエラーが表示されます:

Bad : modifier in $ (/). 

最近、いくつかのパスを追加しましたが、関連しているかどうかわかりません。

パスについては、

および.bashrc

再度表示されないように修正するにはどうすればよいですか?

ありがとうございます!

コメント

  • わかりません' 'はどちらかに関連しています。変更した内容を質問に追加していただけますか?
  • 「パスを追加しました」とは、$PATHにコンテンツを追加したことを意味しますか? .bashrcを変更しましたか? .profile.bashrcを投稿できますか?
  • をご覧くださいstackoverflow.com/questions/8805839/bad-modifier-in
  • 大まかな推測:$を含むパスとシェルを追加しました$を特殊文字として解釈します。
  • $ PATHと.bashrcに何かを追加したことを覚えています。 .profileと.bashrcを表示するにはどうすればよいですか?マーク、私はその投稿を見て、:setenv PATH $ {PATH}:/のようなことを試みましたが、'は機能しませんでした。

回答

シェルとしてbashを使用せず、(t)csh

> csh % PATH="${PATH:/blah}" Bad : modifier in $ (/). 

代わりにbashを使用する場合は、おそらくchshまたは、システム管理者に変更を依頼してください。

bashで、:中括弧内に配置します{ }これは修飾子は変数に適用されます。 cshでは、修飾子を適用するために中括弧は必要ありません。 しない場合は、実際には中括弧を追加する必要があります。 :に修飾子がフォローしていることを通知する必要があります。

コメント

  • これは推測ですかまたは事実? 'わかりにくいです。
  • @Wildcard bashのエラーメッセージは大きく異なります。 '構文エラー:オペランドが必要です(エラートークンは" / blah ")'。答えをもう少し明確にしました。

答え

「:」をエスケープする必要があります。したがって、cshrcファイルは次のようになります。

setenv PATH $PATH\:/path/to/add 

この後、次のようになります。

source ~/.cshrc 

現在の端末に変更を適用します。次回新しいターミナルを開いたときに自動的に適用されます。

コメント

  • (t)cshのより正しい構文は

。または、set path = ($path:q /path/to/add)、またはtcshset -f path = ($path:q /path/to/add)で、要素を一意に保つことができます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です