一些小东西,关于alias

alias 是一个设置别名的小工具~

具体可见维基百科

但是它只会解析别名, 也就是说, 如果你告诉它, 张三跟张麻子是一个人, 你说张三, 他就知道你说的是张麻子, 但是如果你告诉他张三欠我一块钱, 那他就gg了, 人家并不能理解张麻子欠你一块钱啊. 或许他会说: 等等, 一块钱是什么?

这里我遇到的问题是如何传递参数进去.

curl ipinfo.io/8.8.8.8

这条命令是查看 8.8.8.8 的ip所在地, 那么, 如果我设置了

alias ipadrs='curl ipinfo.io/$1'

会不会成功?

当然不会, 因为他不知道, 也无法处理你给他传进去的 ip.

没有办法么?

当然不是.

这里用到的技巧是function命令.

首先定义一个function hi() #你也可以把这个function去掉, 如果你觉得啰嗦的话,毕竟系统知道这是一个函数而不是好吃的.

function hi(){
    echo "Hello  $1!"
}

当然啦,你完全可以横着写:

function hi(){ echo "Hello $1!";} #你也可以把这个function去掉, 并不像C那样声明一下返回值

然后你在命令行里输入

    hi world

有点意思吧! 我们已经可以把参数传递进去了耶~

且慢! 如果你关闭了这个窗口, 你就会发现, 为毛行不通了?

那是必须的, 因为在这个shell中运行的是临时变量, 也就是说没有在文件中保存下来, 毕竟我们没有对文件进行操作啊, 所以呢, 就要把他记录下来, 然后每次运行的时候都会有这个function. 但是话又说回来, 往哪儿写呢?

当然是大名鼎鼎的 .bashrc 啦!

在 ~/.bashrc 文件中的末尾添加一句

    function hi(){ echo "Hello $1!";}

不要忘记source一下哦~ (source ~/.bashrc 或者 `. ~/.bashrc) 这样就会有一个function等你调用啦!

但是还有没有别的方法呢?当然也是有的!条条大路通罗马哟~

    alias hi='function hi(){ echo "Hello $1!";} hi'

然后将这条命令写入 ~/.bashrc 或者 ~/.bash_alias 文件中.(记得 source 一下哦~)

再次运行 hi balala 你就会得到:

    Hello balala!    

那么, 重新返回我们的问题, 怎样把ip地址传递进去呢?

我相信聪明的你一定会自己写出来的~

巴拉拉, 卖萌结束. 继续抄代码~

PS:刚刚发现上面的方法好啰嗦…

直接在 .bash_alias 或者 .bashrc 中添加如下代码:

    hi(){ echo "Hello $1!";}

然后试着 hi wrfly 一下~

完成, 酸爽!

comments powered by Disqus