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



我有脚本假设env.csh。我可以从任何地方采购它,无论它的位置如何

File Path :  /tmp/dump/env.csh 
Run Path : /usr  
Command :  source /tmp/dump/env.csh

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

我使用了这个脚本

set SCRIPT=`readlink -f "$0"`
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

另请参阅此处和此处。

最新更新