假设执行任一
. some_script
或者
source some_script
如何some_script
确定绝对路径当前的.
shell(即正在执行or命令的 shell source
)? (请注意,一般情况下,此路径与 的值不同$SHELL
。)
换句话说,我正在寻找 的“绝对路径”对应项$$
。我认为当前的 shell 进程必须知道可执行文件的来源,但 AFAICT,它没有存储在任何环境变量中。
我能想到的最好办法归结为抓取ps -p $$
;的合适变体生成的输出。例如:
CURRENT_SHELL=${"$( PS_FORMAT=cmd PS_PERSONALITY=linux ps -p $$ -h )"% *}
这可能不太便携。 (而且它很丑陋。)
我主要对当前 shell 是zsh
. (我对 的相应答案有次要兴趣bash
。)
答案1
这是我使用的:
head -n 1 /proc/$$/status | cut -f2
我不确定它是否可以移植到所有 Unices,但它可以在 Linux 和 Cygwin 中运行。