shell编程里,管道代码共用的问题

fengyqf 2015-10-20 05:00:19
有两串shell命令,是一系列命令管道,执行类似的操作:前半部分不同,后半部分是完全相同的,大概如下

cmd_a1 | cmd_a2 | cmd_a3 |cmd_c5 | cmd _c6 ....
cmd_b1 | cmd_b2 | cmd_c5 | cmd_c6 .....

如果相同的部分,如上例中的cmd_c5..... 实现代码非常繁琐,维护起来会很麻烦,修改时很容易忘掉同步复制。

请教大家,像这样的相同的部分,如何实现代码复用?
...全文
121 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengyqf 2015-10-21
  • 打赏
  • 举报
回复
引用 2 楼 Idle_Cloud 的回复:
你都已经封装成命令了,已经在复用了啊。
我没有封闭,只是提问里,用了个代替写法,某些命令的具体实现比较复杂,是多行的awk脚本。 不过你提醒我了,封装成单独的命令,这是个好办法,非常感谢!
fengyqf 2015-10-21
  • 打赏
  • 举报
回复
引用 楼主 fengyqf 的回复:
有两串shell命令,是一系列命令管道,执行类似的操作:前半部分不同,后半部分是完全相同的,大概如下 cmd_a1 | cmd_a2 | cmd_a3 |cmd_c5 | cmd _c6 .... cmd_b1 | cmd_b2 | cmd_c5 | cmd_c6 ..... 如果相同的部分,如上例中的cmd_c5..... 实现代码非常繁琐,维护起来会很麻烦,修改时很容易忘掉同步复制。 请教大家,像这样的相同的部分,如何实现代码复用?
每个命令 cmd_xx ,其实只是在这里提问时的代替写法,事实上每个命令都很复杂,多行的awk脚本,如果写到变量里,会有大量符号要转义,可读性差多了。
Carl_CCC 2015-10-20
  • 打赏
  • 举报
回复
你都已经封装成命令了,已经在复用了啊。
Breddy_ 2015-10-20
  • 打赏
  • 举报
回复
用变量代替公共部分?

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧