Unix-Shell
tcsh : 源文件的路徑
我在 tcsh 下採購一個文件。該文件可以在文件系統上的任何位置。如何檢索源文件的路徑?
$0 不起作用:我不執行文件,我獲取它。
非常感謝 !
一點點grepping給了我想要的東西。
我肯定知道一件事:文件的基本名稱(不是整個路徑)。就我而言,source_me.tcsh。因此我們可以查詢 lsof 以獲取目前 shell PID 並 grep 絕對路徑。
$$ 給你PID。
/usr/sbin/lsof +p $$ | grep -oE /.\*source_me.tcsh
如果您不想使用
lsof
,請僅在下面使用 csh。set script_path = `ls -l /proc/$$/fd | sed -e 's/^[^/]*//' | grep "/script_name"`
$$
是目前執行執行緒的pid。無論呼叫哪種方法(由使用者或在其他腳本中),呼叫的腳本也被打開。所以過濾 fd 的內容會得到腳本的真實路徑。
當腳本軟連結到其他路徑時,這也有效!