最近はPowerShellを常に起動していて、コマンドプロンプトを使わずにPowerShellから色々作業するようにしている(Pythonなどの対話環境もPowerShellから起動している)のですが、そのようななかで個人的にこれはすごいと思えるテクニックを発見しました。
それはたったひとつのコマンド、
PS > powershell
です。「PowerShell内でPowerShellを起動する」。何が嬉しいかというと、スクリプトなりを実行してPowerShellが強制終了した場合に内側のPowerShellが強制終了するだけで外側のPowerShellは生き残るという点です。エラーメッセージも残せます。これで自分でもどうかなと思うような実験的なスクリプトの実行も怖くありません。これはすごい! 画期的!
あー、でもこれ、シェル使いの方には常識だったりするんでしょうか。そうだったら恥ずかしい……。
追記(2008年03月22日)
2chのスレッド「Windows PowerShell (正式版リリース)1.0」の592番目のレスにすでに同様のテクニックが書かれているというコメントをいただきました。けっこうすごい発見だと思ったのですが、やはりというかなんというか、先駆者がおられました。
ただ、こういったコメントをいただくということは「シェル内シェル」はあまり一般的ではないようにも見受けられますね。その点については安心しました。