bashで大文字と小文字を区別するディレクトリリストに問題があります。例えば
$ touch nohupa nohuPb
$ ls nohup*
nohupa nohuPb
ただし、nohuPbではなくnohupaのみがリストされることを期待しています。nohuPbには大文字のPがあるため、.bashrcセット内の*が機能する変数が大文字と小文字を区別しないかわかりません。
何か案が ?
bashで大文字と小文字を区別するディレクトリリストに問題があります。例えば
$ touch nohupa nohuPb
$ ls nohup*
nohupa nohuPb
ただし、nohuPbではなくnohupaのみがリストされることを期待しています。nohuPbには大文字のPがあるため、.bashrcセット内の*が機能する変数が大文字と小文字を区別しないかわかりません。
何か案が ?
それnocaseglob
が原因です。
nocaseglob
設定されている場合、bashは、パス名の展開を実行するときに大文字と小文字を区別せずにファイル名を照合します(上記のパス名の展開を参照)。
テスト
$ touch fooab fooAb
$ ls
fooAb fooab
$ shopt -s nocaseglob
$ ls fooa*
fooAb fooab
$ shopt -u nocaseglob
$ ls fooa*
fooab
シェルにnocaseglob
セットがあるようです。shell built-in
と呼ばれるを使用して設定を解除できますshopt
。それへのオプションとそれに-s
オプションを使用してください。enable
-u
disable
詳細については、こちらをご覧ください。