我一直在试图创建一个等同于csh别名的bash。 csh中相当简单的别名是:
alias gfiles='files="\`grep -l \\!*\`"; echo $files'
在bash中,别名因参数替换而无法工作,并且函数将无法工作,因为它需要在父shell中设置变量。 此别名允许您vi或ls或更多匹配文件。回声并非绝对必要,但我发现它很有用。 知道怎么在bash中做同等的事情吗?
答案 0 :(得分:2)
函数不在子节点中运行,因此它们肯定可以设置环境变量。
gfiles() {
files="$(grep -l "$@")"
echo "$files"
}
(我不确定你的别名是什么;我怀疑它有拼写错误。)