【问题标题】:Using sed to configure file for travis build使用 sed 为 travis 构建配置文件
【发布时间】:2013-12-08 08:26:39
【问题描述】:

我正在尝试通过在末尾添加一个条目来更改 php 配置文件,以通过添加 sqlite 文件路径来允许 travis 构建:

sh -c "if [ '$DB' = 'sqlite' ]; then sed -i "s/\?>/\$config['db']['path'] = 'sqlite.db3';\n?>/" etc/volkszaehler.conf.php; fi;"

应该导致配置文件像这样结束:

<?php
//.. various other options
$config['db']['path'] = 'sqlite.db3';
?>

相反,继续遇到 shell 错误:

/home/travis/build.sh: line 222: /$config[db][path]: Permission denied

或在 cygwin 上:

sh: / etc/volkszaehler.conf.php; fi;: No such file or directory

实现目的的正确引用/转义是什么?

【问题讨论】:

标签: shell sed travis-ci


【解决方案1】:

您似乎遇到了引用问题。我会尝试这样的事情:

sh -c '
  if [ "$DB" = "sqlite" ]; then
    sed -i "s/\?>/\$config[\'db\'][\'path\'] = \'sqlite.db3\';\n?>/" etc/volkszaehler.conf.php
  fi'

如果系统支持,我也会删除sh -c 和最外层的引号。

【讨论】:

  • travis ci 似乎出于某种原因需要 sh -c 。最后以: sh -c "if [ '$DB' = 'sqlite' ]; then sed -i 's/\?>/\$config['\''db'\'']['\' '路径'\'']\ =\ '\''sqlite.db3'\''\n?>/' etc/volkszaehler.conf.php; fi;"来自stackoverflow.com/questions/91110/…
猜你喜欢
  • 2016-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-10
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多