2013-02-22 39 views
-2

功能,據我所知,在bash的功能就像goto的在c,這使腳本一點點慢。這是真的?我應該避免還是擁抱功能?神話或事實大約在bash

function foo(){ 
bla.. 
} 
+2

速度,在bash,不應該是一個問題。如果是,則使用編譯語言。 – perreal 2013-02-22 04:00:26

回答

2

如果您使用的是bash腳本,並擔心速度下降的函數調用強加,你正在做的事情是錯誤的。使用匯編語言(如c)...

你應該擁抱功能,原因如下:

  • 複用性。您可以在腳本中多次調用一個函數。調用函數比複製和粘貼10行來執行任務更容易。如果它也位於同一個地方,編輯任務也會更容易。
  • 抽象。當你有一個功能,你可以重新使用它,而不必關心它是如何工作的。 (該功能變成「黑匣子」)。

我也發現功能,更易於閱讀 - 函數的名稱應該告訴我在函數中的代碼做什麼,我可以通過查看功能,而不是具體的獲得該代碼的高級視圖步驟來完成該功能。

+0

我喜歡你的答案,我問了這個問題,因爲我沒有在bash腳本中經常看到函數,於是我聽說了在bash和函數中的速度,這就是爲什麼我懷疑它 – 2013-02-22 06:18:45

+0

可恢復性:不僅更容易調用函數10次,它也更快。一個函數只編譯一次,如果您將代碼剪切/粘貼10次,然後編譯10次。 – cdarke 2013-02-22 09:37:19