2016-05-21 12 views
0

Ich erstelle ein Programm, das im Namen des Benutzers eine Zeile an .bash_profile anfügt. Mein Programm kann jedoch mehrmals vom selben Benutzer auf der Maschine neu gestartet werden. Wie kann ich sicherstellen, dass diese Zeile nur einmal an die Datei angefügt wird, anstatt eine beliebige Anzahl von doppelten Zeilen in der Datei .bash_profile hinzuzufügen? Der einfachste Weg wäre, die .bash_profile-Datei zu lesen und jede Zeile zu betrachten und nur eine neue Zeile hinzuzufügen, wenn die Zeile noch nicht existiert. Gibt es einen besseren Weg?Verhindern, dass doppelte Zeilen an .bash_profile angehängt werden

+1

Was ist die Zeile, die angehängt wird? Es könnte in dieser Hinsicht einen Unterschied machen. –

+0

sicher, die Zeile ist: export NODE_PATH = $ (npm root -g): $ NODE_PATH –

+0

Wenn es Duplikate dieser Zeile gibt, ist es keine große Sache, aber ich würde lieber vermeiden Dupes –

Antwort

1

Der einfachste Weg wäre, die .bash_profile Datei in lesen und bei jeder Zeile suchen und nur eine neue Zeile hinzufügen, wenn die Leitung existiert noch nicht, gibt es einen besseren Weg?

Es gibt keinen besseren Weg. Die Überprüfung, ob die Variable NODE_PATH bereits so eingestellt ist, wie sie gewünscht wird, kann erst funktionieren, wenn der Benutzer sich erneut angemeldet hat. Dadurch würde verhindert, dass zuvor doppelte Zeilen hinzugefügt werden.

line='export NODE_PATH=$(npm root -g):$NODE_PATH' 
grep "$line" .bash_profile||echo $line >>.bash_profile 
Verwandte Themen