如何创建一个等同于设置变量的csh别名的bash

时间:2016-05-10 21:21:54

标签: bash alias csh

我一直在试图创建一个等同于csh别名的bash。 csh中相当简单的别名是:

alias gfiles='files="\`grep -l \\!*\`"; echo $files'

在bash中,别名因参数替换而无法工作,并且函数将无法工作,因为它需要在父shell中设置变量。 此别名允许您vi或ls或更多匹配文件。回声并非绝对必要,但我发现它很有用。 知道怎么在bash中做同等的事情吗?

1 个答案:

答案 0 :(得分:2)

函数不在子节点中运行,因此它们肯定可以设置环境变量。

gfiles() {
  files="$(grep -l "$@")"
  echo "$files"
}

(我不确定你的别名是什么;我怀疑它有拼写错误。)