如何從CLI中任意提取輸出?我試圖用標準Ubuntu服務器爲AWS EC2/EBS上的NodeJS/MongoDB技術堆棧編寫一個通用的部署/擴展腳本OS(12.04)。目前,我正在通過AWS Dashboard Console手動創建和附加EBS驅動器,但所有其他操作都應該自動進行,而無需通過SSH進行並執行愚蠢的CLI(儘管最終我還想自動創建附件) )。如何從CLI輸出中分配CLI變量
首先,我需要獲取所有要掛載EBS驅動器的塊lsblk -l
的列表。 然後,我需要(在第一時間條件)設置的mdadm和LVM,但他們的命令假定我知道塊的名稱,如:
sudo mdadm --create --verbose /dev/md0 --level=10 --chunk=256 --raid-devices=4 /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4
等。這非常簡單...如果我是通過lsblk的CLI輸出進行人類閱讀。但是,如何動態解析/提取並迭代它呢?不知怎的,我需要這樣做(僞代碼):
$EBS_ARRAY = lsblk -l -list_the_names_of_blocks_not_mounted
sudo mdadm --create --verbose /dev/md0 --level=10 --chunk=256 --raid-devices=EBS_ARRAY.length EBS_ARRAY.join(' ')
...rest of my script here...
你可以很明顯的看出,我是一個JavaScript的傢伙毫無章法有關如何使用CLI工作動態無JSON和非交互式(腳本)。所以......你怎麼會以自動的方式隨意地從CLI輸出中提取信息到變量中呢?
謝謝。
一般來說,用咆哮開始一個問題並不是一個好的基調。特別是,如果你抨擊其他人喜歡的東西,並且你打算請同樣的人幫助你。 – fork0 2012-07-15 20:59:06
此外,你的腳本的其餘部分在別處,但不在這裏。並且'lsblk'輸出的例子也會有所幫助 – fork0 2012-07-15 21:00:54
1.你的問題的第一部分顯示了對IT的完全無知。 2.你試過用Google搜索嗎?男子3 popen()會幫助你。 – 2012-07-15 21:04:01