Unix-Shell

tcsh : 源文件的路徑

  • August 10, 2016

我在 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 的內容會得到腳本的真實路徑。

當腳本軟連結到其他路徑時,這也有效!

引用自:https://serverfault.com/questions/139285