このコマンドは Linux では正常に動作しますが、OS X Mountain Lion では次の操作を行うと動作します。
rm !(myfile)
bash は次のように文句を言う:
bash: !: event not found
OS X でも同じことを実行する方法はありますか?
答え1
extglob
これは、 に特別な意味を与えるオプションを設定していないためです!
。
Bash で次のように記述します:
shopt -s extglob
その後、コマンドは期待どおりに実行されるはずです。
デフォルトでは、!
拡大する最後に実行されたバックグラウンド(非同期)コマンドのプロセスID。extglob
設定すると、!
パターンマッチングただし、その後に続く括弧と組み合わせてのみ使用できます()
。
もちろん、この行を に追加して、~/.bash_profile
Terminal.app を開くたびに設定することもできます。OS X はデフォルトでログイン シェルを実行するため、これらのオプションはLinux ターミナル エミュレーターで慣れている方法で~/.bash_profile
はなく で設定する必要があります。~/.bashrc