シェルスクリプトでコマンドインタプリタを検出する方法は? [コピー]

シェルスクリプトでコマンドインタプリタを検出する方法は? [コピー]

重複の可能性:
端末で使用しているシェルをどのようにテストしますか?

シェルスクリプトがどのインタプリタを使用しているかを検出したいと思います。たとえば、次のスクリプトは次のようになります。

#!/bin/bash

issue_interpreter_name()

通訳者に次の事項を開示する必要があります。

bash

ベストアンサー1

#!/bin/sh  
ps h -p $$ -o args='' | cut -f1 -d' '
  • psプロセスリスト
  • h列ヘッダーを印刷しない
  • -p <PID>プロセスID PIDのみリスト
  • $$現在PIDを使用するシェルに置き換えられました
  • -o args他の情報なしでコマンドラインを印刷する
  • cut出力を複数の部分に分割
  • -f1最初のフィールドのみを印刷
  • -d' 'スペースをフィールド区切り文字として使用

    $ ./testje

    /bin/sh

おすすめ記事