标签: db2

这个以双连字符 (--) 开头的 shebang 是如何工作的?

我在 RosettaCode 页面中发现了以下类型的 shebang:

--() { :; }; exec db2 -txf "$0"
Run Code Online (Sandbox Code Playgroud)

它适用于 Db2,也适用于 Postgres。但是,我不明白整行。

我知道双破折号是 SQL 中的注释,之后它调用 Db2 可执行文件,并使用一些参数将文件本身作为文件传递。但是括号,卷曲的刹车,冒号和分号怎么样,以及如何替换真正的shebang #!?

https://rosettacode.org/wiki/Multiline_shebang#PostgreSQL

scripting shell-script sql shebang db2

17
推荐指数
2
解决办法
1210
查看次数

将更长的文本输出存储在内存中的 shell 变量与写入磁盘

我在循环内对 db2 数据库命令行工具进行了以下调用,该循环运行 100k 次迭代。

(db2 的输出是每次调用大约 20 个字符的 5 行,总共大约 100k 个调用。SP 的输入以 SP 的输出行为前缀,并转储到日志文件中。)

while read line
do
    db2 -x "call stored_procedure_XYZ($line)" |sed "s/^/$line/" >>log_file.txt
done<$infile
Run Code Online (Sandbox Code Playgroud)

我试图通过从循环内部取出 sed 和磁盘写入来使整个事情运行得更快。是否建议将所有输出存储在一个变量中,然后对其进行修改并将其写入磁盘?

shell 变量可以容纳的长度是多少?

(bash, aix 6.1)

bash shell-script environment-variables db2

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