2010-07-23 76 views
7

有沒有相當於__FILE__的sh,給我當前正在執行的文件的路徑名?首選POSIX解決方案,bash可以接受,謝謝。sh等效於__FILE__

+0

可能重複[一個bash腳本可以告訴目錄它存放在?(HTTP://計算器.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in) – rightfold 2015-03-20 09:09:17

回答

5

嘗試使用$0

+4

這不等同於'__FILE__',如果你在一個源自另一個文件的文件中。 – mxcl 2012-08-15 14:20:51

+0

怎麼樣「哪個$ 0」? – 2013-07-06 12:53:12

0

只是一個想法:

#!/usr/bin/env bash 

# "$0" will expand to the name of the script, as called from the command line 
readlink -f $0 
+0

如果通過$ PATH變量調用該腳本,則這將不正確。 – 2010-07-23 14:26:06

+0

仍然(請參閱編輯)? – miku 2010-07-23 14:28:33

+0

請注意'readlink'不是完全可移植的。 OSX(大概是BSD)有一個完全不同的版本 - 其中'-f'不被支持。相反,'-f'表示不同的東西(這裏沒有幫助)。 – Telemachus 2010-07-23 14:29:37