有没有办法在bash中实现/使用lambda函数?我在想这样的事情:
$ someCommand | xargs -L1 (lambda function)
我不知道有这样做的方法,但是您可以通过以下方式完成您尝试使用的操作:
somecommand | while read -r; do echo "Something with $REPLY"; done
这也将更快,因为您不会为每行文本创建一个新进程。
[编辑2009-07-09]
我做了两个修改:
> Incorporated litb的建议使用-r禁用反斜杠处理 – 这意味着输入中的反斜杠将不会改变。
>而不是提供一个变量名(如X)作为参数读取,我们让读取分配给它的默认变量REPLY。这具有保护前导和尾随空间的愉快的副作用,否则剥离(即使内部空间被保留)。
从我的观察结果来看,这些更改保留了每个输入行上除字母NUL(ASCII 0)字符之外的所有内容。
[编辑26/7/2016]
根据评论者Evi1M4chine,在运行读取X之前将$ IFS设置为空字符串(例如,使用命令IFS =”读取X),在将结果存储到$ X中时也应该保留开头和结尾的空格,被强制使用$ REPLY。