哪种形式最有效?Bash变量级联
1)
v=''
v+='a'
v+='b'
v+='c'
2)
v2='a'` `'b'` `'c'
假设可读性都是一模一样的给你,这是一个延伸,将1)的意思是创建并扔掉一些字符串immutables(如在Python中)还是充当定期扩展缓冲区容量的Java“StringBuffer”?在Bash内部如何处理字符串连接?
如果2)和1)一样可读,那么反引号是否会产生子壳,并且这会更昂贵,即使它可能比1)中没有的操作更具成本效益?
解析器不应该注意到反引号内缺少令牌,而是折叠为“no-op”,这是非常奇怪的。无论如何,你是对的..零星的变量在其他地方使用..我压缩了这个例子。 – Robottinosino 2013-03-21 02:03:18
30年的脚本..哇,顺便说一句。我尊敬地鞠躬!感谢您的回答!你碰巧知道字符串连接在内部是如何工作的吗?我想可以看看源代码。 – Robottinosino 2013-03-21 02:06:17
我从来没有见过任何人不想在子shell中运行并捕获输出。也许是灵感来自Python的知识吗?我没有看,但如果shell没有为每个变量的值使用可变字符串,我会感到惊讶。像Python一样不可变的是一个更近的想法。 – 2013-03-21 02:06:35