您如何从 CLI 中任意提取输出?
在我的具体示例中(但答案应该普遍适用于整体)我正在尝试使用标准 Ubuntu 服务器操作系统(12.04)为 AWS EC2/EBS 之上的 NodeJS/MongoDB 技术堆栈编写一个通用部署/扩展脚本. 目前,我正在通过 AWS 仪表板控制台手动创建和附加 EBS 驱动器,但其他一切都应该自动发生,而无需通过 SSH 登录并执行愚蠢的 CLI(尽管最终我也想自动化创建和附加部分)。
因此,首先,我需要获取所有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...
您显然可以看到我是一个 javascript 人,不知道如何在没有 JSON 和非交互式(脚本)的情况下动态地使用 CLI。那么...您究竟如何以自动方式从 CLI 输出中任意提取信息到变量中?
谢谢。