【发布时间】:2012-12-09 21:31:03
【问题描述】:
我有一些输出一些信息的 bash 函数:
- 在 epson-ppds 中查找模型名称
- 在三星 ppds 中查找型号名称
- find-modelname-in-hp-ppds
- 等等...
我一直在编写读取输出并对其进行过滤的函数:
function filter-epson {
find-modelname-in-epson-ppds | sed <bla-blah-blah>
}
function filter-hp {
find-modelname-in-hp-ppds | sed <the same bla-blah-blah>
}
etc ...
但我认为这样做会更好:
function filter-general {
(somehow get input) | sed <bla-blah-blah>
}
然后调用另一个高级函数:
function high-level-func {
# outputs filtered information
find-modelname-in-hp/epson/...-ppds | filter-general
}
如何通过最佳 bash 实践实现这一目标?
【问题讨论】:
-
有什么区别?只有简洁吗?但我认为
function的定义看起来更有表现力,不是吗? -
你说的更具表现力是什么意思?在 this link 中,您会看到它已过时且已弃用(而不是 POSIX)。
-
您的函数
find-modelname-...的真正外观和作用是什么?也许您应该告诉我们更多信息,以便我们可以建议最佳选择。您显然是在尝试分解一些代码,但我们需要知道它到底是什么。 -
@gniourf_gniourf 您引用的链接说
function fname { ... }很好。不推荐使用的是function fname() {...} -
@gniourf_gniourf 是的,但正如您所指出的那样,它在 bash 中并未被弃用。无论如何,paren 语法更丑陋而且没有意义;它们不用于调用函数,也不在其中传递参数。
标签: bash shell pipe bash-function