linux PATH环境变量设置与读取

来源:互联网 发布:麦克风扩音软件 编辑:程序博客网 时间:2024/05/17 01:45

在项目开发过程中, 需要根据路径来运行一些脚本或者程序, 开发中不适宜写死为固定的path. 这样移植code或维护都会不太便利, 比较好的做法是配置环境变量并且在code中从环境变量来读取, 这样不同的project还可以配置不同的环境变量但使用同一套code.

以下是一些例子:

1. 在启动启动运行的脚本中设置如下环境变量:

  export WIFI_MODULES_PATH=$PWD/modules
  export WPA_SUPPLICANT_PATH=$PWD
 2. 在*.cmake中将 对应的文件copy到board下面的某路径

 INSTALL( FILES ${INSTALL_PATH}/bin/aaaa   DESTINATION ${VA_INSTALL_PATH_APPS}  PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE )
 //注意权限的设置, 不然一些执行程序运行不了

3. 如果运行将一些配置文件在系统运行起来后copy到其他路径 可以使用如下脚本:

#copy XXXXX.confif [ -f $XXXXX_PATH/XXXXX.conf ]then  if [ -f $XXXXX_CONF_DIR/XXXXX.conf ]then  echo "XXXXX-exist"elseecho "XXXXX-do-copy"mkdir -p $XXXXX_CONF_DIRcp $XXXXX_PATH/minidlna.conf  $XXXXX_CONF_DIR/XXXXX.conffielseecho "XXXXX-no-exist"fi

此脚本可以在系统启动的脚本中调用或者在main函数中透过system()调用

4. code中如何读取path:

        char *path_value = NULL;int const path_length = 60;char str_conf_path[path_length];if ((path_value = getenv("XXXXX_CONF_DIR"))){strncpy(str_conf_path, path_value, path_length);str_conf_path[path_length -1] = '\0';strncat(str_conf_path, "/XXXXX.conf", path_length-strlen(str_conf_path)-1);DPRINTF(E_DEBUG, L_GENERAL, "XXXXX_CONF_DIR: %s.\n", str_conf_path);}else{DPRINTF(E_WARN, L_GENERAL, "XXXXX_CONF_DIR Not set.\n", path_value);strncpy( str_conf_path, XXXXX_CONF_PATH, path_length);}str_conf_path[path_length -1] = '\0';


 

0 0
原创粉丝点击