鍍金池/ 問答/Linux  HTML/ 初學shell,取environment-variable-mac.ini文件中

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

初學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

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

回答
編輯回答
愿如初

聲明,我平時也不怎么用shell,現學現用,不保證方法最優(yōu)。
你給的setting.ini中幾個變量前沒有$導致不能替換

將下面文件保存為 process.sh, 賦予可執(zhí)行權限,然后在setting.ini, environment-variable-mac.ini 同級目錄執(zhí)行。

#!/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
2017年5月1日 13:19