2016-07-20 94 views
0

这可能是一个明显的问题,但我找不到明确的答案。在哪里存储C命令行应用程序和bash脚本的设置?

在C中编写命令行实用程序或编写bash脚本时,我可以在哪里保存值供以后参考?

我在找的东西类似于NSUserDefaults

+1

“where” - 在类似'〜/ .my_app'的文件中。 – i486

+0

所以规范是主目录中的隐藏文件夹? –

+0

没有必要,但只是一个例子。它也可以是'。/ my_app'。 – i486

回答

2

对于bash设置,在启动时,shell调用通常读取/etc/profile和专用等效文件~/.bash_profile~/.bashrc。所以看看这些文件并进行适当的修改。如果可能,我建议在进行任何更改之前备份这些文件。

请注意,/etc/profile文件通常会提供全局设置,而如果主目录中存在等效文件,该文件可能会覆盖全局设置。

如果你想在飞行添加或修改环境变量,尝试...

一个。添加以下代码到你的~/.bash_profile~/.bashrc文件

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

B的结束。追加补充或修改,以在飞行文件./.bashadd(注:你必须在程序中处理这个)

echo export NAME=John >> ./.bashadd 

℃。在登录,当你调用bash,或者当您采购的~/.bash_profile~/.bashrc文件,环境变量将可

测试:

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

诚然,不是一个理想的解决方案。我建议只在您的本地环境中进行此操作,而不是在全局范围内(即不使用/etc/profile

+0

我已经有一个.bash_profile设置,但我正在编写脚本,需要动态修改值并持续保存它们。 –

+0

@RASS - 查看更新后的答案。 – tale852150

+0

感谢这是一个很好的解决方案。有没有什么方法可以告诉一个变量是否已被定义。 –

相关问题