2015-08-28 92 views
1

我已經將我的腳本導出到PATH變量。所以從任何地方,我都可以調用我的腳本,但是我必須知道從哪個路徑調用腳本。如何找到命令調用路徑

腳本存在於路徑/home/raja/scps/shell/s1.sh

export PATH=$PATH:/home/raja/scps/shell/s1.sh. 

如下,我將運行腳本

1例

[email protected]:/home/raja#s1.sh 

我想知道的路徑: /home/raja

第二個示例

[email protected]:/home/pmt/tmp/p1/p2#s1.sh 

我想知道的路徑:/home/pmt/tmp/p1/p2

+0

如下 根@拉賈-H97-D3H在最後兩行小變化:/home/raja/tmp/p1/p2#s1.sh 我想知道路徑:/ home/raja/tmp/p1/p2 –

+2

這是一個無效的近距離投票,因爲我看到它。 –

+2

您是否試圖將腳本目錄的路徑添加到'PATH'?你是否想從腳本中知道腳本所在的目錄?你是否想從腳本中知道用戶所在的目錄? – Sorpigal

回答

3

從那裏被調用的腳本是在腳本里面PWD環境變量可用的當前工作目錄。

考慮這個例子腳本:

#!/bin/bash 

echo $PWD 

將它添加到您的路徑,並從任何目錄調用它。 $PWD會有你想要的。

此:

[email protected]:/home/raja# s1.sh 

將輸出/home/raja

此:

[email protected]:/home/pmt/tmp/p1/p2# s1.sh 

將輸出/home/pmt/tmp/p1/p2

此外,您還需要將目錄與腳本一起添加到$PATH;而不是腳本文件本身。你應該這樣做,而不是:

export PATH=$PATH:/home/raja/scps/shell 
+0

我想你並沒有明確表示我的問題,我知道pwd會給出當前的工作目錄。我可以從任何地方運行腳本,因爲我已經將腳本導出到PATH變量。如果我從調用腳本中的任何地方運行,我必須調用路徑 –

+1

@PMTRAJA,我的答案與您展示的示例一致。我不確定我是否遵守,你能否澄清? –

+0

他想要的是創建腳本一次,並在任何目錄中運行它。我不知道如何,但它似乎是一個壞主意。如果你有兩個s1.sh,一個被設置爲在任何目錄中運行,另一個在你的工作目錄中呢?你想要shell運行什麼? –