哪種形式最有效?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