コマンドラインで使用する通訳者を指定する

コマンドラインで使用する通訳者を指定する

bashshいいですね。 、、などを使用してシェルスクリプトを作成できます。zsh次のようにファイルの上部にハッシュバンを入れることができます。

#!/usr/bin/env bash

これにより、ファイルの実行に使用するインタプリタがカーネルに通知されます。

しかし、私はコマンドラインでどのインタプリタを使用するかをマシンに指示する方法がわからないことに気づきました。

たとえば、次のように書く場合:

$ foo bar baz

コマンドラインでコマンドを解釈するためにどのソルバーが使用されているかどうかはどうすればわかりますか?特定のインタプリタを使用するようにコンピュータにどのように指示しますか?

質問が明確になりますように。

答え1

意図的に別のシェルを選択しない限り、現在実行中のシェルである可能性が最も高いログインシェルを取得します(たとえば、ターミナルエミュレータの設定でログインシェル以外のシェルを選択するか、ログイン時にシェルを明示的に呼び出すことによって)。たとえばssh remote-host /path/to/shell)を使用すると、次のようになります。

echo $SHELL

他のシェルを使用するには、次の手順に従ってください。

exec /path/to/shell

たとえば、

exec /bin/bash

関連情報