2016-07-20 10 views
0

Das mag eine offensichtliche Frage sein, aber ich kann keine definitive Antwort finden.Wo können Einstellungen für C-Befehlszeilen-Apps und Bash-Skripte gespeichert werden?

Beim Erstellen eines Befehlszeilenprogramms in C oder beim Schreiben von Bash Scrips wo kann ich Werte für spätere Referenz speichern?

Was ich suche ist etwas ähnlich wie NSUserDefaults.

+1

"wo" - in einer Datei wie '~/.my_app'. – i486

+0

Also ist die Norm ein versteckter Ordner im Home-Verzeichnis? –

+0

Nicht notwendig, aber ein Beispiel. Es kann auch './My_app' sein. – i486

Antwort

2

Für die bash Einrichtung, die Shell-Aufruf liest normalerweise /etc/profile, und der private Äquivalent ~/.bash_profile oder ~/.bashrc, beim Start. Schauen Sie sich diese Dateien an und nehmen Sie die entsprechenden Änderungen vor. Wenn möglich, empfehle ich, eine Sicherungskopie dieser Dateien anzulegen, bevor Sie Änderungen vornehmen.

Beachten Sie, dass die Datei /etc/profile generell globale Einstellungen bereitstellt, während diese Datei die globalen Einstellungen überschreiben kann, wenn eine entsprechende Datei in Ihrem Basisverzeichnis vorhanden ist.

Wenn Sie Umgebungsvariablen on the fly, versuchen hinzufügen oder ändern ...

ein. Hinzufügen der bis zum Ende Ihrer ~/.bash_profile oder ~/.bashrc Datei folgenden Code

if [ -e ./.bashadd ] 
    then 
     source ./.bashadd 
    fi 

b. anhängen Ergänzungen oder Änderungen an der Datei ./.bashaddon the fly (ANMERKUNG: Sie dies in Ihrem Programm zu behandeln haben)

echo export NAME=John >> ./.bashadd 

c. bei der Anmeldung, wenn Sie bash aufrufen oder wenn Sie Ihre ~/.bash_profile oder ~/.bashrc Datei beziehen, werden die Umgebungsvariablen

-Test zur Verfügung:

[shell ~]$ echo export NAME=John >> ./.bashadd 
[shell ~]$ source ./.bashrc 
[shell ~]$ echo $NAME 
John 
[shell ~]$ 

zwar keine ideale Lösung. Und ich würde vorschlagen, dies nur in Ihrer lokalen Umgebung und nicht global (d. H. Nicht mit /etc/profile)

+0

Ich habe bereits eine .bash_profile eingerichtet, aber ich schreibe Skripte, die Werte im laufenden Betrieb ändern und dauerhaft speichern müssen. –

+0

@RASS - siehe aktualisierte Antwort. – tale852150

+0

Danke, das ist eine gute Lösung. Gibt es eine Möglichkeit zu sagen, ob eine Variable bereits definiert wurde? –