実行時にスクリプトからシェルを決定する

実行時にスクリプトからシェルを決定する

私が知っている限り、echo $0私たちがシェルで使用している現在のシェルを決定することです。代わりに、スクリプトが実行されているシェルを確認したいと思います。そのため、スクリプトから印刷しようとしましたが、$0スクリプト名が期待どおりに返されました。だから私の質問は、私のスクリプトがどのシェルで実行されているかをどうやって知ることができるかということです。

ベストアンサー1

あなたが要求したものではないかもしれませんが、これは現在誰かのために通訳している通訳者を特定するのにある程度役立ちます。

  1. トンプソンシェル(osh)、
  2. ベルンシェル、
  3. Bourne Identity シェル( bash),
  4. コーエンシェル(ksh88、、、、、)、ksh93pdkshmksh
  5. zsh
  6. ポリシーに準拠した一般的なシェル(posh)、
  7. 別のシェル( yash)、
  8. rcシェル、
  9. akangaシェル、
  10. ESシェル、
  11. wishTCL 翻訳者、
  12. tclshTCL 翻訳者、
  13. expectTCL 翻訳者、
  14. 真珠、
  15. Python,
  16. ルビー、
  17. PHP、
  18. JavaScript(少なくともNodejs、SpiderMonkeyシェル、およびJSPL)
  19. MS/ワインcmd.exe, command.com(MSDOS, FreeDOS...).
'echo' +"'[{<?php echo chr(13)?>php <?php echo PHP_VERSION.chr(10);exit;?>}\
@GOTO DOS [exit[set 1 [[set 2 package] names];set 3 Tcl\ [info patchlevel];\
if {[lsearch -exact $1 Expect]>=0} {puts expect\ [$2 require Expect]\ ($3)} \
elseif {[lsearch -exact $1 Tk]>=0} {puts wish\ ($3,\ Tk\ [$2 require Tk])} \
else {puts $3}]]]' >/dev/null ' {\">/dev/null \
">"/dev/null" +"\'";q="#{",1//2,"}";a=+1;q='''=.q,';q=%{\"
'echo' /*>/dev/null
echo ">/dev/null;status=0;@ {status=1};*=(" '$' ");~ $status 1&&{e='"\
"';eval catch $2 ^'&version {eval ''echo <='^ $2 ^'&version''}';exit};e='"\
"';if (eval '{let ''a^~a''} >[2] /dev/null'){e='"\
"';exec echo akanga};eval exec echo rc $2 ^ version;\" > /dev/null
: #;echo possibly pre-Bourne UNIX V1-6 shell;exit
if (! $?version) set version=csh;exec echo $version
:DOS
@CLS
@IF NOT "%DOSEMU_VERSION%"=="" ECHO DOSEMU %DOSEMU_VERSION%
@ECHO %OS% %COMSPEC%
@VER
@GOTO FIN
", unless eval 'printf "perl %vd\n",$^V;exit;'> "/dev/null";eval ': "\'';
=S"';f=false e=exec\ echo n=/dev/null v=SH_VERSION;`(eval "f() { echo :
};f")2>$n` $f||$e Bourne-like shell without function
case `(: ${_z_?1}) 2>&1` in 1) $e ash/BSD sh;;esac;t(){
eval "\${$1$v+:} $f &&exec echo ${2}sh \$$1$v";};t BA ba;t Z z;t PO po;t YA ya
case `(typeset -Z2 b=0;$e $b)2>$n` in 00) (eval ':${.}')2>$n&&eval '
$e ksh93 ${.sh.version}';t K pdk;$e ksh88;;esac;case `(eval '$e ${f#*s}$($e 1
)$((1+1))')2>$n` in e12)$e POSIX shell;;esac;$e Bourne-like shell;: }
print "ruby ",RUBY_VERSION,"\n";exit;' ''';import sys
print("python "+sys.version);z='''*/;
s="";j="JavaScript";if(typeof process=="object"){p=console.log;p(process.title
,process.version)}else{p=print;p((f="function")==(t=typeof version)?"string"==
typeof(v=version())?v:(typeof build!=f?"":s= "SpiderMonkey ")+j+" "+v:(t==
"undefined"?j+"?":version)+"\n");if(s)build()}/*
:FIN } *///'''

初期バージョンをリリースしました。which_interpreter スクリプト2004年頃、ユーズネットで。 Sven Mascheckには次のスクリプトがあります。どんな殻Bourneのような殻を識別することに焦点を当てます。両方のスクリプトのマージバージョンもあります。そこ

おすすめ記事