在 C 中执行时获取脚本路径 Shell

Get script path when executing it in C Shell

假设我有脚本env.csh。我可以从任何地方获取它,而不管它的位置

      File Path :  /tmp/dump/env.csh 

      Run Path : /usr  

      Command :  source /tmp/dump/env.csh

当我从 / 文件夹 usr 获取 env.csh 时如何获取文件路径。

我用过这个脚本

  set SCRIPT=`readlink -f "[=12=]"`
  set SCRIPTPATH=`dirname "$SCRIPT"`
  echo $SCRIPTPATH

但它给出的路径为 /usr

任何获取文件路径的方法

 set called=($_)
 set script_fn=`readlink -f $called[2]`
 echo $script_fn
 set script_dir = `dirname "$script_fn"`
 echo $script_dir

如果您的文件名为 env.csh

set scriptpath=`find /proc/$$/fd -type l -lname '*env.csh' -printf '%l' + | xargs dirname`
echo $scriptpath

另见 here and here