如何将其变成别名?

如何将其变成别名?

我经常使用这个命令:

grep -rnw donkey | grep 市场 | cut -c -80

我怎样才能将其更改为 Linux 上的别名?

我试过:

alias search='grep -rnw $1 | grep $2 | cut -c -200'

但是当我用它运行时

search hello world

它给了我:

cut: Usage: grep [OPTION]... PATTERN [FILE]...
hello: No such file or directory
cut: Try 'grep --help' for more information.
world: No such file or directory
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.

答案1

不幸的是,bash 别名不像其他一些 shell 那样接受参数。

但是你可以通过将搜索声明为可以添加到.bashrc文件中的函数来解决这个问题

function search { grep -rnw $1 | grep $2 | cut -c -200; }
export -f search

看:创建接受参数的 bash 别名

链接中的例子使用了别名,这似乎没有必要。你可以export -f直接将带有搜索的函数放入.bashrc并将该函数命名为搜索。

如果其他方法都失败了,另一个选择是编写一个名为搜索的脚本。

例如创建一个名为的脚本,其中search包含:

#!/bin/sh
grep -rnw $1 | grep $2 | cut -c -200;

将其放置在 /usr/bin 或 $HOME/bin 等定义的路径中$PATH。如果使用 $HOME/bin,请将该路径放置在您的环境中,例如:

export PATH=$PATH:$HOME/bin

相关内容