tcsh を使用していますが、現在のシェル スクリプトのパスを取得しようとしていますが、成功していません。
私のスクリプトには以下が含まれます:
echo $0
ソース tmp.csh が返す
/usr/lbin/tcsh
dirname $0
/usr/lbin を返します
の代わりに使用します$_
(スクリプトが最初に行うこととして、変数に保存します) $0
。
#!/bin/tcsh
set called=($_)
if ("$called" != "") then
echo "sourced $called[2]" # the script was sourced from this location
endif
if ("$0" != "tcsh") then
echo "run $0" # the script was run from this location
endif
編集:
おそらくあなたの.cshrc
:
set basepath=/path/to/base
source "$basepath/scriptname" "$basepath"
そしてあなたの基本スクリプトで:
source "$1/subscript"
基本スクリプトが にない限り、$PATH
その場合、自分で物事を難しくしているだけです。