标签: variable-substitution

变量替换中的Bash冒号运算符?

我继承了一些bash代码,这两行让我感到困惑:

branch_name=`git describe --contains --all HEAD`
branch_name=${branch_name:-HEAD}
Run Code Online (Sandbox Code Playgroud)

我对:冒号运算符的理解是基于索引创建子串,因此-HEAD在这种情况下使用字符串没有任何意义.

string variables bash colon variable-substitution

28
推荐指数
3
解决办法
2万
查看次数

psql \copy 中的变量替换

是否可以在 PSQL 控制台导出文件中将当前日期放在文件名末尾?导出文件的名称应类似于table_20140710.csv是否可以动态执行此操作?- 日期的格式可以与上面的不同,但这并不重要。

这就是我的意思的例子:

\set curdate current_date
\copy (SELECT * FROM table) To 'C:/users/user/desktop/table_ ' || :curdate  || '.csv' WITH DELIMITER AS ';' CSV HEADER
Run Code Online (Sandbox Code Playgroud)

postgresql command-line dynamic-sql variable-substitution psql

9
推荐指数
2
解决办法
4666
查看次数

你什么时候需要花括号在Gradle中进行变量替换?

如果您的gradle.properties文件中定义了变量,那么何时需要使用花括号进行变量替换(例如"some string ${yourVariable}"),何时可以不使用(例如"some string $yourVariable").始终使用花括号是最佳做法吗?

groovy gradle variable-substitution

7
推荐指数
1
解决办法
3257
查看次数

Azure Devops 发布管道 XML 变量替换不起作用

我的发布管道中有一个非常简单的变量替换,但它不起作用。connectionStrings.config我在文件中有这样的变量:

<?xml version="1.0"?>
<connectionStrings>
  <add name="ExpenseDBConnectionString" connectionString="__ProdConnString__" providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

然后我在发布管道中定义了变量:

在此输入图像描述

我还在XML Variable Substitution部署任务中启用了:

在此输入图像描述

但我运行了该版本,并且该变量没有被替换。我在日志中收到此消息:

2020-02-28T19:57:26.1262198Z Initiated variable substitution in config file : D:\a\_temp\temp_web_package_875508750741006\Content\D_C\a\1\s\Expenses.Web\obj\Release\Package\PackageTmp\App_Config\ConnectionStrings.config
2020-02-28T19:57:26.1312311Z Processing substitution for xml node : connectionStrings
2020-02-28T19:57:26.1321602Z Skipped Updating file: D:\a\_temp\temp_web_package_875508750741006\Content\D_C\a\1\s\Expenses.Web\obj\Release\Package\PackageTmp\App_Config\ConnectionStrings.config
Run Code Online (Sandbox Code Playgroud)

这应该很简单,所以不确定我缺少什么设置。帮助!

azure variable-substitution devops azure-devops azure-pipelines

6
推荐指数
1
解决办法
1万
查看次数

我可以将Eclipse和Maven变量替换为log4j.properties文件吗?

您可以使用$ {variablename}语法在log4j配置文件中使用系统属性.

您是否可以在其中包含Eclipse变量(如项目名称)和Maven变量(如工件ID),并在相应的构建期间替换它们?

eclipse configuration maven-2 log4j variable-substitution

4
推荐指数
1
解决办法
1911
查看次数

在bash脚本中使用sed替换LaTeX别名

我对bash脚本编程比较陌生,对LaTeX没有经验.我被要求开发一个脚本,用于替换LaTeX文档中的便捷快捷方式和更加繁琐的长形等价物.

到目前为止,我的方法是在单独的变量中分离快捷方式和长形式,然后尝试使用sed在文本中替换它们.我在下面附上了简短的示例文件.

因为它当前是脚本需要2个参数,一个文件expr,它从中检索快捷方式和长形式术语,以及一个应该进行适当更改的infile.我知道脚本正确地隔离了快捷方式和长格式并且可以返回它们,但它似乎无法执行sed命令.

我尝试在线搜索并发现多个类似的问题,其中建议是sed难以识别变量,并且各种类型的报价组合可能解决问题.我尝试了许多排列,但似乎都没有.在许多情况下,长形式术语包含特殊字符,如'$'和'{}',所以我怀疑这可能是问题,但我不确定.我也非常愿意接受有关如何解决问题的其他想法.请在下面找到脚本和2个参数文件expr和infile的示例.

包含快捷方式和长格式的expr文件

% a
\newcommand{\ao}{$^{18}$O}
\newcommand{\aodso}{$^{18}$O/$^{16}$O}
% b
\newcommand{\bea}{\begin{equation}}
\newcommand{\beaa}{\begin{eqnarray}}
% c
\newcommand{\cthree}{C$_3$}
\newcommand{\cfour}{C$_4$}
\newcommand{\coz}{CO$_2$}
Run Code Online (Sandbox Code Playgroud)

infile包含由long-forms替换的快捷方式

This is my test {\ao} 
{\aodso} my test is this
Does it work {\bea}
{\beaa} test test test
work work work {\cthree}
{\cfour} This is my test
my test is this {\coz}
Run Code Online (Sandbox Code Playgroud)

脚本的相关子部分用expr和infile作为参数调用

while read line; do
    if [[ $line == \newcommand* ]]; then
    temp=${line#*\{}
    sc=${temp%%\}*} 
    templf=${temp#*\{}
    lf=${templf%\}}
    #echo $sc, $lf
    sed -i -e 's/${sc}/${lf}/g' ${infile}
    fi
done < ${expr}
Run Code Online (Sandbox Code Playgroud)

更新:为了澄清,这就是期望的结果,infile中存在的快捷方式将替换为适当的长形式 …

bash latex sed variable-substitution

4
推荐指数
1
解决办法
830
查看次数

jenkins 中 webpack 的 config.js 中 Octopus 变量替换的策略

我正在开发一个 ES6 AngularJS 项目,我使用 webpack 将所有内容捆绑到dist/app.js.

我正在使用的 CI/CD 堆栈是 SCM - Jenkins - Octopus:

  1. 我的代码更新已推送到存储库

  2. Jenkins 克隆存储库,调用npm installgulp使用它gulp-webpack从一个入口点捆绑和缩小所有内容并将其放入dist/app.js

  3. 构建后,Jenkins 将应用程序打包到 nuget pkg 中,并将其推送到 Octopus Deploy,其中应用程序部署到 IIS

章鱼项目在多个环境中工作,我必须有一种方法来根据环境替换一些配置变量。为此,Octopus 提供了“替换文件中的变量”部署步骤。

当我不使用模块捆绑器和 ES6 时,我只会有一个配置文件来设置一些我随后使用的角度常数。我会有一个config.js文件和一个config.template.js文件。Octopus 将替换文件中的变量config.template.js,我只需将其设置为替换config.jsconfig.template.js部署后。

然而现在,我只是使用一个普通的config.js导出我需要使用的变量,然后将其导入到相关的文件中(例如包含角度控制器函数的文件)。

通过这种设置,我无法像以前那样进行替换,因为我的config.js意志只是包含在dist/app.js. 谁能帮我想出一个如何实现这一目标的策略?我想在构建之前进行config.js-交换,然后让 Octopus 替换整个包中的变量,但这似乎效率相当低。config.template.jsapp.js

javascript variable-substitution jenkins octopus-deploy webpack

4
推荐指数
1
解决办法
2414
查看次数

在应用配置转换期间或之后,如何让Octopus进行变量替换?

我想从我的web.config.[environment]转换文件中引用我在部署项目中定义的变量(作用于环境).当我这样做时,变量引用最终会在转换后的web.config中结束,而不会被替换.

configuration variable-substitution octopus-deploy

3
推荐指数
1
解决办法
5295
查看次数

Tcl中列表中的变量替换

我正在尝试替换列表中的变量:

% set a 1  
1  
% set b {1 $a}  
1 $a  
%  
% set a 1  
1  
% set b [list 1 $a]  
1 1  
Run Code Online (Sandbox Code Playgroud)

当我使用花括号{}来定义列表时,变量 'a' 不会被替换为它的值,但在使用list它的情况下会替换。

使用定义的列表时如何替换变量的值{}

list tcl variable-substitution

3
推荐指数
1
解决办法
4262
查看次数

我如何打破PHP中的字符串变量?

这应该很容易回答.当我有一个变量,比如说$ id,并且在一个字符串中,我希望它在两个下划线之间.像这样的东西:

$id = 1;
$myString = "row_$id_info";
Run Code Online (Sandbox Code Playgroud)

现在,php将看到"row_"和变量$ id_info - 而这不是我想要的.

所以我的问题很明确:我如何打破PHP中的字符串变量?

感谢所有回复

php string variable-substitution

1
推荐指数
1
解决办法
132
查看次数

Tcl SQLite 更新变量替换不能有撇号

问题是:如果我使用 { } 作为更新命令,如下所示:

package require sqlite3
fileRepo eval {UPDATE uploads SET $col=$data WHERE rowid=$id}
Run Code Online (Sandbox Code Playgroud)

我无法替换大括号内的任何变量。这一切都必须进行硬编码。

但是,如果我使用“”作为更新命令,如下所示:

fileRepo eval "UPDATE uploads SET $col='$data' WHERE rowid=$id"
Run Code Online (Sandbox Code Playgroud)

我可以替换双引号内的变量,但我必须使用 ' ' 才能输入带空格的数据,以便 sql 将其视为一个输入。如果我不这样做,如果我发送类似的内容,我会收到错误

$data = "合法堆栈"

因为它有一个空格,所以 sql 会被单词“Stack”阻塞,除非它放在单引号内

所以...

如果我将此数据发送到更新命令:

$col = description
$data = "Stack's Pet"
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

靠近“s”:执行“fileRepo eval”UPDATE uploads SET $col='$data' WHERE rowid=$id”时出现语法错误...

因此,鉴于这些规则,我看不出有什么办法可以成功地将单引号或撇号传递给更新命令。有其他方法可以做到这一点吗?

谢谢!

sql sqlite tcl variable-substitution

1
推荐指数
1
解决办法
451
查看次数

Javascript变量替换

我有一个阵列

daysoftheweek:['Monday', 'Tuesday','Wednesday', 'Thursday', 'Friday','Saturday', 'Sunday'],
Run Code Online (Sandbox Code Playgroud)

我也有功能

function totalMonday() {}
function totalTuesday() {}
Run Code Online (Sandbox Code Playgroud)

我可以使用变量替换来调用它们吗?

total+{daysoftheweek[0]}
Run Code Online (Sandbox Code Playgroud)

javascript function variable-substitution

0
推荐指数
1
解决办法
43
查看次数