我非常適合使用shell,但我對shell腳本知之甚少。今天我碰到一個微小的shell腳本凸輪用於固定節點的webkit libudev.so.0問題:https://github.com/rogerwang/node-webkit/wiki/The-solution-of-lacking-libudev.so.0如果我將它分成兩行,爲什麼這個shell腳本失敗?
正如你可以看到,解決一個指示它來創建下面的代碼一個shell腳本:
LD_LIBRARY_PATH=/home/omi/nw:$LD_LIBRARY_PATH ./nw $*
我的正在發生的事情是以下幾點認識:
1)聲明變量LD_LIBRARY_PATH,和值分配給它,在這種情況下,它是通向我們先前創建的符號鏈接西北目錄libudev.so.1。然後,將$ LD_LIBRARY_PATH的前一個值附加到新值。然後執行傳遞給shell腳本的參數的nw二進制文件。
這行之有效,符合市場預期,但如果我在兩行,像這樣的代碼拆分爲:
LD_LIBRARY_PATH=/home/omi/nw:$LD_LIBRARY_PATH
./nw $*
它不工作。 shell腳本沒有任何錯誤地執行,但node-webkit應用程序不運行。相反,我們得到關於libudev.so.0丟失的錯誤。這是爲什麼?
此外,它似乎是你添加的路徑(在這種情況下/ home/omi/nw)可以是任何東西。我嘗試使用/ home /,/ home/akjfd /和其他變體,並且腳本始終按預期工作。這是爲什麼? (我終於留下了正確的路徑指向我創建符號鏈接的地方)
PS。有一點不在話題中,我發現在同一目錄(/ lib64/in Fedora 18 64bit)中創建與libudev.so.1的符號鏈接,並將其稱爲libudev.so.0,而無需創建shell腳本,但我不會推薦它,因爲你會污染/ lib64 /目錄,並且它可能會導致系統出現問題。
非常感謝。這爲我澄清了一切:D – Buzu