Shell脚本新手:如何用Bash结合模板创建指定内容的.ini文件
嘿,作为Shell脚本新手,要生成你需要的这个.ini文件真的不难!我给你两种实用的方法,你选哪种顺手的来就行~
方法1:使用Heredoc(强烈推荐,适合多行内容)
这种方式最直观,能直接把你要的内容完整写入文件,还不用担心特殊字符被Shell解析的问题。在终端里直接运行下面的命令就可以生成config.ini文件啦:
cat > config.ini << 'EOF' [dev] JDBC_URL = jdbc:h2:mem:mem_test;MODE=Oracle JDBC_USERNAME = JDBC_PASSWORD = SERVICE_ENDPOINT = http://localhost:8080/Central/api/AppService [qa] JDBC_URL = jdbc:oracle:thin:@qa-oracle:1521:qa JDBC_USERNAME = qauser JDBC_PASSWORD = qapass SERVICE_ENDPOINT = http://qa-services/Central/api/AppService [prod] JDBC_URL = jdbc:oracle:thin:@prod-oracle:1521:prod JDBC_USERNAME = scott JDBC_PASSWORD = EOF
简单解释下:cat > config.ini 是告诉Shell把后面的内容写入到config.ini文件里;<< 'EOF' 表示从下一行开始,直到遇到单独一行的EOF为止的所有内容都作为输入,加单引号能保证里面的内容完全原样保留,不会被Shell转义。
方法2:用echo逐行追加内容
如果你更习惯用echo命令,也可以一行一行把内容追加到文件中:
# 先清空已有的config.ini(如果存在),或者直接创建新文件 > config.ini # 写入dev环境配置 echo "[dev]" >> config.ini echo "JDBC_URL = jdbc:h2:mem:mem_test;MODE=Oracle" >> config.ini echo "JDBC_USERNAME = " >> config.ini echo "JDBC_PASSWORD = " >> config.ini echo "SERVICE_ENDPOINT = http://localhost:8080/Central/api/AppService" >> config.ini # 加空行分隔不同环境 echo "" >> config.ini # 写入qa环境配置 echo "[qa]" >> config.ini echo "JDBC_URL = jdbc:oracle:thin:@qa-oracle:1521:qa" >> config.ini echo "JDBC_USERNAME = qauser" >> config.ini echo "JDBC_PASSWORD = qapass" >> config.ini echo "SERVICE_ENDPOINT = http://qa-services/Central/api/AppService" >> config.ini # 加空行分隔 echo "" >> config.ini # 写入prod环境配置 echo "[prod]" >> config.ini echo "JDBC_URL = jdbc:oracle:thin:@prod-oracle:1521:prod" >> config.ini echo "JDBC_USERNAME = scott" >> config.ini echo "JDBC_PASSWORD = " >> config.ini
运行完命令后,你可以用cat config.ini命令检查一下文件内容是不是和你预期的一致。如果需要让文件只有你自己能读写,还可以加上chmod 600 config.ini命令来设置权限哦~
内容的提问来源于stack exchange,提问作者Srishti
相关产品推荐
相关产品推荐

