![如何将其变成别名?](https://linux22.com/image/692541/%E5%A6%82%E4%BD%95%E5%B0%86%E5%85%B6%E5%8F%98%E6%88%90%E5%88%AB%E5%90%8D%EF%BC%9F.png)
我经常使用这个命令:
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
链接中的例子使用了别名,这似乎没有必要。你可以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