如何在腳本中重建我的路徑?

如何在腳本中重建我的路徑?

我已將 PATH 提取到一個文件並將其列出如下:

/bin
/usr/bin
/usr/local/bin
.
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin
/usr/java/default/bin
/usr/kerberos/bin
/usr/local/bin
/bin
/usr/bin

我現在希望從該文件中提取它,並將其恢復為新文件中的一行,每個目錄之間用冒號分隔。我收到一個空文件,可以告訴我我做錯了什麼嗎?這是我正在執行的用於執行文件恢復的命令:

echo -e ${bash_list tr \\ :\n} > bash_PATH

答案1

tr從 STDIN(標準輸入)取得輸入。嘗試這個:

$ tr '\n' ':' > output_file  < input_file

您已使用 Bash 參數擴充語法,但使用檔案作為參數,這是不正確的,因為該參數只能是變數或特殊的 shell 參數。

若要執行您正在嘗試的操作,請僅使用bash

$ var="$(<bash_list)"
$ echo "${var//$'\n'/:}" > bash_PATH

現在bash_PATH文件將包含:

/bin:/usr/bin:/usr/local/bin:.:/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin:/usr/java/default/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin

另請注意,「$PATH」中有重複的目錄名稱(希望這些是為了範例而故意的),要刪除重複項而不更改順序,您可以嘗試

相關內容