Wivern Blog

Personal-Tech memorandum

zshに切り替えてからOctoppressで記事が作成できない対処方法

現象

shellをbashからzshに切り替えてからOctopressで記事を作成するとエラーが発生 shellがbashの時は問題なくできていた。

1.bash
1
2
3
$ bundle exec rake new_post[`sample post title`]

$ zsh: no matches found: new_post[sample post title]

原因

エラーの原因はグロッビング。 グロッビングでの特殊文字の使用をするという形になっており、そこに反応したせいで 引数の*?[]を使うとグロブ展開が行われ、no matches foundと なってしまう。少しややこしいい。。。

対処方法

  • グロブ展開をさせないために.zshrcに以下を追記
.zshrc
1
2
3
$ vim .zshrc

setopt nonomatch
  • .zshrcを変更したので反映させる
1.bash
1
$ source ~/.zshrc

この記述( setopt nonomatch )もどうやら少し反則的な書き方らしい。。。 この方法で対処したが他にも方法があったので忘れないようにメモ。 以下を参考にしたNot compatible with Zsh #117

aliasを設定する

.zshrcにaliasを設定

1.bash
1
alias rake="noglob rake"

クォーテーションで囲む

記事を作成するときにクォーテーションで囲む

1.bash
1
$ bundle exec rake "new_post[sample post title]"