どんな
. some_script
または
source some_script
some_script
絶対パスを決定する方法現在の.
シェル(つまり、またはコマンドを実行するシェルsource
)? (通常、このパスはの値とは異なります$SHELL
。)
つまり、私が探している「絶対パス」対応物です$$
。現在、シェルプロセスは実行可能ファイルのソースを知る必要があると思いましたが、AFAICT、環境変数に保存されていません。
私が考えることができる最善の方法は、ps -p $$
生成された出力の適切な変形をキャッチすることです。たとえば、
CURRENT_SHELL=${"$( PS_FORMAT=cmd PS_PERSONALITY=linux ps -p $$ -h )"% *}
これは移植性が悪いかもしれません。 (そしてそれは醜いです。)
私は現在シェルが何であるかに主に興味がありますzsh
。 (該当する回答に二次的な関心がありますbash
。)
答え1
これが私が使用するものです:
head -n 1 /proc/$$/status | cut -f2
すべてのUnicesに移植可能かどうかはわかりませんが、LinuxとCygwinでは動作します。