尋常でないもふもふ

a software engineer blog

fishで環境変数といっしょにコマンド実行したいとき

FishShell ではイコール演算子を使って変数に設定という記法がない。
Ruby on RailsRAILS_ENV=test bundle exec rake db:migrate みたいなことするとエラーになる。

$ RAILS_ENV=test bundle exec rake db:migrate:status
Unsupported use of '='. To run 'bundle' with a modified environment, please use 'env RAILS_ENV=test bundle…'

エラー文に答えが書いてあるけどググると Issue も見つかった。
Is there a way to run RAILS_ENV=production rake db:migrate in fish ? · Issue #587 · fish-shell/fish-shell · GitHub

下記のように env コマンドと併用すればよい。

$ env RAILS_ENV=test bundle exec rake db:migrate

fish の FAQ にも書かれてある。 fish: Frequently asked questions