小编Sir*_*ius的帖子

在awk代码块内修改shell变量

有什么办法可以在awk代码块中修改shell变量?

--------- [shell_awk.sh]---------------------
 #!/bin/bash

shell_variable_1=<value A>
shell_variable_2=<value B>
shell_variable_3=<value C>

awk 'function A(X)
{ return X+1 }
{ a=A('$shell_variable_1')
  b=A('$shell_variable_2')
  c=A('$shell_variable_3')
  shell_variable_1=a
  shell_variable_2=b
  shell_variable_3=c
}' FILE.TXT
--------- [shell_awk.sh]---------------------
Run Code Online (Sandbox Code Playgroud)

这是一个非常简单的示例,真实的脚本加载了文件并使用函数进行了一些更改,我需要在更改之前将每个值保留为特定变量,这样我就可以将MySQL的before和after值注册到MySQL中。

从参数($ 1,$ 2等)接收到after值。

我已经知道如何从文件中获取值之前的值。

除了shell_variable由awk变量设置之外,其他所有操作都做得很好。从awk块代码外部设置很容易,但是在内部,这可能吗?

variables bash shell awk

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

如何在编译时定义常量

我知道我可以在 Go 中对变量使用编译器标志,但是如何对常量执行此操作?

我想在编译时设置一些常量,例如数据库集,如下所示:

package db_info

var Deploy string

const DbType   = "mysql"
const DbUser   = "my_user"
const Db       = "my_db"
const DbPort   = "3306"

if Deploy == "staging" {
    const DbPassword = "my_pwd_stg"
    const DbHost     = "db.url.com"
} else if Deploy == "production" {
    const DbPassword = "my_pwd_prd"
    const DbHost     = "db.url.com"
} else {
    const DbPassword = "pwd"
    const DbHost     = "127.0.0.1"
}
Run Code Online (Sandbox Code Playgroud)

如何正确地做到这一点?就像我得到的:

syntax error: non-declaration statement outside function body
Run Code Online (Sandbox Code Playgroud)

go

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

标签 统计

awk ×1

bash ×1

go ×1

shell ×1

variables ×1