-4

CLI から出力を任意に抽出するにはどうすればよいですか?

私の具体的な例では (ただし、答えは全体に一般的に適用されるはずです)、標準の Ubuntu サーバー OS (12.04) を使用して AWS EC2/EBS の上に NodeJS/MongoDB テクノロジ スタック用の汎用デプロイ/スケール スクリプトを作成しようとしています。 . 今のところ、AWS ダッシュボード コンソールを介して手動で EBS ドライブを作成して接続していますが、他のすべては自動的に行われるはずです。

最初に、lsblk -lマウントする EBS ドライブであるすべてのブロックのリストを取得する必要があります。次に、(初めての条件で) 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...

JSON を使用せず、非対話的に (スクリプト化された) CLI で動的に作業する方法について、私が無知な JavaScript の男であることは明らかです。それで...一体どのようにして、自動化された方法でCLI出力から情報を変数に任意に抽出しますか?

ありがとう。

4

1 に答える 1

1

grepコマンドの出力を bash スクリプトで解析する場合は、sedawk、 、およびshell builtinsなどのいくつかのユーティリティがあり、ニーズに合わせて文字列を操作するのに役立ちます。

一方、bash スクリプトで GUI プログラミングを実際に行うことはできません。シンプルな GUI の場合zenity、Gnome を使用しているかどうかを確認できます。

高度な GUI を設計する必要がある場合は、pythonwithtkinterや他のグラフィック ライブラリなどのプログラミング言語を検討できます。

サーバー上でこれらの CLI コマンドを実行する必要がある場合は、サーバー側にcgi/jsonモジュールを使用し、メイン処理言語として javascript/ajax を使用して、Python でアプリケーションを作成できます。

ところで、man ページはそれほど悪くなく、引数の構文はすべてのコマンドでほぼ一貫しています。

于 2012-07-15T21:21:00.913 に答える