我已將 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」中有重複的目錄名稱(希望這些是為了範例而故意的),要刪除重複項而不更改順序,您可以嘗試這。