2012-05-22 42 views
2

我是linux新手& bash,我正在研究一些不同的腳本,但我有一些概念性問題需要回答,以幫助我找到最佳方法來實現我想做的事情。Bash概念問題

  1. 什麼是將數據存儲在bash腳本中並將其另存爲文件的另一種腳本可以快速解析的最有效方法?

  2. 什麼是豐富多彩的bash菜單的一些很好的例子?我如何在bash中使用多列菜單?

  3. 我可以在bash中顯示圖像,還是將圖像信息發送給我們,比如通知發送,並讓它顯示任何圖像?

謝謝。

+2

對於通常(但並非總是)應包含特定代碼段的特定問題,您將會有更好的運氣。 –

+1

這太開放了。 '1'取決於你的數據以及你如何使用它,'2'是一個內容列表問題,'3'沒有說明你實際想要做什麼(XY問題)。投票結束爲NARQ – Daenyth

+0

查看['whiptail'](http://en.wikibooks.org/wiki/Bash_Shell_Scripting/Whiptail)或['dialog'](http://www.linuxjournal.com/article/2460) )。 – sarnold

回答

2

這是一個相當:-)

的問題花香首先,將數據存儲在一個bash腳本的最有效的方式取決於完全上的數據,你想要的處理做了。如果處理將由bash本身完成,那麼bash變量(大小允許)可能會更快。如果外部程序如grepsedawk將在bash的指導下處理它,則文件可能會更好。

但是,這是一個非常一般指南 - 你需要來分析數據和使用它,特別是因爲如何它存儲在文件中也很重要。舉個例子,如果我單獨在bash中處理它,我不會將定長記錄存儲爲XML文件,因爲這意味着我必須爲shell編寫大量的XML處理代碼。我可能會將它作爲固定長度的記錄存儲在平面文件中。

其次,我沒有例子給你,因爲bash往往是一個命令行驅動的東西,或者至多,一個非常簡單的基於菜單的東西。它通常不用於花哨的UI工作。

而且你可以很容易地擁有多列菜單,最簡單的形式是這樣的:

echo "1. Enter new contact.  4. Find contact" 
echo "2. Edit contact    5. Exit" 
echo "3. Delete contact" 

最後,bash本身有任何顯示的圖像比ASCII藝術更復雜,不支持:

|\_/| 
/@ @ \ 
(> º <) 
\__V__/ 
/O \ 

所以,如果你需要比這更復雜的東西,你可能會把它傳遞給外部程序。

+1

+1(貓)。我甚至沒有讀過你的答案:D –

+1

嘿!這是我妻子的一張照片,你麻木不仁:-)哦,這就是ASCII藝術的不準確之處。 – paxdiablo

+1

現在我知道爲什麼你花這麼多時間在SO上:P –