2010-08-18 135 views
0

我試圖在Mac上的終端中設置bash命令。試圖設置bash命令

當我直接執行腳本時,腳本運行正常。

我在/ usr/local/bin /中設置符號鏈接到腳本的當前位置。當我嘗試從符號鏈接運行它時,它不起作用。我不相信問題是$ PATH,因爲pip,git,ipython都存在於這個位置。當我編輯$ PATH設置時,這些失敗。

對此提出建議?

+1

嘗試'ls -l'對符號鏈接查看它們是否設置正確。 – 2010-08-18 03:26:40

+0

並檢查「ls -lL」 - 沒有大寫字母L,您會看到鏈接指向的位置,但不一定在鏈接的最末端沒有任何內容。 – 2010-08-18 03:29:31

回答

3

ls -l /usr/local/bin/foo並看到你的符號鏈接是實際上是指向。 Betcha它壞了。如果不是,請嘗試運行/usr/local/bin/foo。如果可行的話,儘管你在OP中說了什麼,但這是你的PATH錯誤。

唯一會導致此行爲的其他事情是腳本正在讀取$0(它自己的名稱與執行)。使用符號鏈接,這將有不同的價值。

0

我找到了我自己的答案......這個符號鏈接是由一個自動文件創建的,這個文件正在吞噬我的密碼。我也在使用virtualenv,所以爲了使它起作用,我必須激活virtualenv並將其放在具有創建符號鏈接的腳本的文件夾中。

+2

我恭敬地提交/ usr/local/bin中的符號鏈接應該不取決於您是否處於特定的虛擬環境中。 – 2010-08-18 03:35:34

0

我安裝我的命令$HOME/bin而不是/usr/local/bin,但它並不重要。正如在評論中暗示的,一個問題是符號鏈接是否設置正確。

  • 檢查哪個命令shell認爲你應該執行:which command
  • 檢查中/usr/local/bin指向正確文件的鏈接(並具有執行權限等):
    • ls -l /usr/local/bin/command
    • ls -lL /usr/local/bin/command
  • 檢查shebang中的解釋器路徑是否正確:
    • file /usr/local/bin/command
  • 檢查/usr/local/bin實際上是在你的PATH:echo $PATH

如果這些方法都顯示了一個問題,告訴我們上面的命令的結果。