這永遠不會返回任何內容:readlink $Somevar
。我可以有"${Somevar}"
,"$Somevar"
,$Somevar
或${Somevar}
- 它沒有區別。我繼續打印Somevar
,我知道它有一個理智的價值。只需在終端輸入$Somevar
(一旦我回顯/「調試」我的腳本給我的相對路徑和中止)給了我絕對路徑。但我需要能夠在腳本中獲得絕對路徑!如何從變量讀取鏈接路徑?
是否有可能使用readlink和變量一起使用?坦率地說,我不知道readlink甚至「知道」它正在傳遞一個變量。我甚至認爲在一個腳本中它會在readlink被調用之前被shell擴展。我已在終端(sans腳本)中使用「~/_src
」進行了測試。它工作的唯一方法是如果我用沒有引號的方式編寫。但是,如果我將該值分配給一個變量我的機器上的其他功能與它一起工作,但readlink。
如何獲得絕對路徑?我甚至不關心我是否使用readlink。 我只是想從腳本中獲取絕對路徑。
UPDATE:(#1意見碎)
我標記爲Linux操作系統。我要求readlink,因爲我也想翻譯符號鏈接,但我很好地在單獨的步驟中做這件事。
此外,這也將失敗:ABSDIR=`cd $RELDIR; pwd`
給
bash: cd: ~/_src/: No such file or directory
(其中有這樣一個目錄,cd
會找到它,如果我輸入終端上精確的目錄名)。我現在猜測,~/
由終端本身擴大。
那麼,有沒有辦法處理這樣的路徑?實際上,我認爲處理這些路徑的所有實用程序都只能工作,因爲終端在調用它們之前擴展了路徑。
在將我的頭撞向我讀了另一個關於代字符的問題,它適用於我找到的所有相對路徑。解決方法是在重新分配時使用eval,而不是試圖將eval粘貼到要用於路徑的命令中:''''eval echo $ {RELDIR //>}'「''' – SaburoutaMishima