Wie erstelle ich meinen PATH im Skript neu?

Wie erstelle ich meinen PATH im Skript neu?

Ich habe meinen Pfad in eine Datei extrahiert und wie folgt aufgelistet:

/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

Ich möchte es jetzt aus dieser Datei extrahieren und als eine Zeile in einer neuen Datei mit Doppelpunkten zwischen jedem Verzeichnis wiederherstellen. Ich erhalte eine leere Datei. Kann mir bitte jemand zeigen, was ich falsch mache? Dies ist der Befehl, den ich ausführe, um die Wiederherstellung in der Datei durchzuführen:

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

Antwort1

trnimmt Eingaben von STDIN (Standardeingabe) entgegen. Versuchen Sie Folgendes:

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

Sie haben eine Syntax für die Parametererweiterung von Bash verwendet, verwenden jedoch eine Datei als Parameter, was nicht korrekt ist, da der Parameter nur eine Variable oder ein spezieller Shell-Parameter sein kann.

Um das zu tun, was Sie versuchen, verwenden Sie nur bash:

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

Jetzt bash_PATHenthält die Datei:

/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

Beachten Sie auch, dass Sie doppelte Verzeichnisnamen in "$PATH" haben (ich hoffe, das ist als Beispiel beabsichtigt). Um die Duplikate zu entfernen, ohne die Reihenfolge zu ändern, können Sie Folgendes versuchen:Das.

verwandte Informationen