linux - 需要有关使用嵌套命令替代的建议
问题描述
我正试图围绕嵌套命令替换。我尝试嵌套反引号,但显然这不起作用。如果不先声明 ${host} 变量,您将如何嵌套以下内容?
host=$(hostname|cut -c1-14);for id in `aladmin list|grep ${host}|awk '{print $2}'`;do aladmin delete ${id};done
该命令列出服务器上的所有警报,对主机名的前 14 个字符进行 greps,然后删除 awk 在字段 2 中找到的具有警报 ID 的警报。
我的问题绝不会重复上一篇文章中的“你好”: 如何正确嵌套 Bash 反引号
提前致谢, 比约恩
解决方案
在 awk 中做所有事情。没有必要使用 for 循环和 grep 等。有比这更好的方法,但作为第一个近似值,尝试类似:
aladmin list | awk "/$(hostname | cut -c1-14)/"'{ print "aladmin delete " $2 | "sh"}'
推荐阅读
- ffmpeg - 如何正确使用带有“xstack”过滤器的“h”和“w”,特别是如何避免剪裁和边框?
- c++11 - 在另一个 `std::array` 中使用 `std::array` 大小
- javascript - Chrome中JS多个PDF下载限制为10个
- xcode - 安装命令行开发人员工具:无法安装该软件,因为它当前无法从软件更新服务器获得
- sql - 如何在加入 2 个表时在 sql 中的键上添加不同的关键字
- ios - 是否可以从 TestFlight 用户那里检索错误日志消息?
- jquery - 网站未正确调整到移动设备的大小(元值到位)
- python - 包含 if 语句的 while 循环的问题
- javascript - 如何让 webview findInPage() 在 Electron 中工作
- javascript - 如何 console.log 列表的一部分?