初学shell,取environment-variable-mac.ini文件中的变量和setting.ini中的模板,生文件

发布于 2022-09-07 21:03:10 字数 2032 浏览 42 评论 0

初学shell,我想读取environment-variable-mac.ini文件中的变量和setting.js中的模板,然后把变量和setting.ini文件都放到一个新生成的setting.js文件中去,这两个文件都在configuration目录下

environment-variable-mac.ini

UNIVER_USER_LOGIN='http://127.0.0.1/api/login'
UNIVER_SEARCH_ORDINARY='http://127.0.0.1/api/search/common'
UNIVER_SEARCH_LABEL='http://127.0.0.1/api/search/common'
UNIVER_SEARCH_VIDEO='http://127.0.0.1/api/search/common'
UNIVER_TASK_MANAGER='http://127.0.0.1/api/task/manager'
UNIVER_PROJECR_URL='67.110.220.11'
UNIVER_PROJECR_PORT=777778888

setting.ini


/**
 * environment
 * 全局配置文件,总体设置
 * 应用过程中不要进行修改
 */

var ENV = (function(){

    return {

        pythonAPI: {
            userLogin : '$UNIVER_USER_LOGIN',
            video: '', //
            searchOrdinary: '$UNIVER_USER_LOGIN, 
            searchLabel: '$UNIVER_USER_LOGIN',
            searchVideo : '$UNIVER_USER_LOGIN', 
            taskManager: 'UNIVER_TASK_MANAGER', 
            domainName: 'UNIVER_PROJECR_PORT', // 域名
            domainPort: $UNIVER_USER_LOGIN
        }

    }
})();

我希望我的setting.js文件中的内容是这样的


/**
 * environment
 * 全局配置文件,总体设置
 * 应用过程中不要进行修改
 */

var ENV = (function(){

    return {

        pythonAPI: {
            userLogin : 'http://127.0.0.1/api/login',
            video: '', //
            searchOrdinary: 'http://127.0.0.1/api/search/common', // 普通搜索接口
            searchLabel: 'http://127.0.0.1/api/search/common',
            searchVideo : 'http://127.0.0.1/api/search/common', // 周同标签搜索接口
            taskManager: 'http://127.0.0.1/api/task/manager', // 任务管理器接口
            domainName: '67.110.220.11', // 域名
            domainPort: 777778888// 端口号
        }

    }
})();

我的脚本是这样的


#!/bin/bash

awk -F '=' 'BEGIN {print "{"} {print "\t"$1":"$2","} END{print "}"}' environment-variable-mac.ini > setting.js


awk -F '=' 'BEGIN {print "{"} {print "\t"$1":"$2","} END{print "}"}' setting.ini > setting.js

但是无法生成我想要的文件

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

沫离伤花 2022-09-14 21:03:10

声明,我平时也不怎么用shell,现学现用,不保证方法最优。
你给的setting.ini中几个变量前没有$导致不能替换

将下面文件保存为 process.sh, 赋予可执行权限,然后在setting.ini, environment-variable-mac.ini 同级目录执行。

#!/bin/sh
cp ./setting.ini ./setting.js
for line in $(cat environment-variable-mac.ini)
do
    name="$"$(echo $line | awk -F '=' '{print $1}')
    val=$(echo $line | awk -F '=' '{print $2}')
    val=$(echo $val | sed "s/'//g")

    sed -i ".bak" "s#$name#$val#g" ./setting.js
done
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文