2014-03-27 100 views
1

這是在我的作業

echo PATH $ PATH \ $ PATH做什麼?

我不知道它是如何工作的。

  • echo PATH打印 「PATH」
  • $PATH創建一個 「PATH」 變量...也許?
  • \$PATH表示在執行過程中應忽略「$」。

因此,該行只有兩個echo PATH沒有真正的目的,並打印$PATH的位置?

+2

你試過嗎? 'echo $ PATH'不會創建一個變量,它會打印一個已經存在的變量的當前內容。 – twalberg

+0

我認爲我表達了錯誤,這不是我所做的,它在我的作業上,它的工作原理,它只是我不知道它是如何工作的 – DS94

+1

你應該坐在電腦前,打開一個外殼,並試驗三'echo'命令,以'PATH'開始,然後是'$ PATH',然後是'\ $ PATH'。這很簡單,對於想要在編程或計算機上工作的人來說,自我教育是必不可少的。請參閱「[多少研究努力預計堆棧溢出用戶?](http://meta.stackoverflow.com/questions/261592)」 –

回答

2

我認爲ubuntu上的默認shell已經打了一段時間,所以我會認爲這是你正在使用的,儘管下面也適用於所有兼容POSIX的shell和其他。

$PATH擴大變量PATH\轉義下一個字符,阻止shell將其解釋爲特殊字符。

如果我們假設PATH包含/bin:/usr/bin然後如果你運行:

echo PATH $PATH \$PATH 

外殼將首先展開變量(1),然後執行結果(2)。

所以(1)給出:

echo PATH /bin:/usr/bin $PATH 

其中,當作爲步驟運行(2)將輸出:

PATH /bin:/usr/bin $PATH 

到控制檯。

+0

Oookay,我現在明白了,謝謝! – DS94

+0

bash需要的假設所有?我想不出任何符合POSIX標準的shell,這種行爲會有所不同 –

+0

@CharlesDuffy的確,有很多其他的shell可以提供相同的行爲;絕對是所有符合POSIX的shell,還有許多不是POSIX – PeterSW

-2

$PATH不會創建變量PATH,它會像上述那樣擴展變量。如果你想創建一個新的,你應該使用:

PATH="Something" 
+2

小心:修改'$ PATH'的值可以很容易地混淆你的環境,使得難以執行任何命令(問題表明OP可能沒有意識到這一點。) –

+1

'PATH =「Something」'將會完全覆蓋這個路徑,這樣做會天真地使你的shell無用。在你的登錄shell腳本中天真地做它可能會使你的帳戶變得對無經驗的用戶無用。儘管答案試圖提供幫助,但它會打開潛在的大量蠕蟲,應該解釋潛在的問題。 –

相關問題