alias命令高级用法
开心一刻
悟空大喝一声:筋斗云。。。
半小时过去了,筋斗云还没来。
悟空再喝:筋斗云。。。
一小时之后,筋斗云没来。
现在插播一条天气预报:今天天气晴朗,万里无云。
写在前面
我在使用 rsync 命令时用了特别多的参数,导致这一条命令特别长,因此我想到了用 alias 给命令起一个别名,但是我在其中的 ip 地址是会变化的,我不想每次都去 ~/.bashrc 中修改 alias 中记录下来的内容,因此想吧 alias 之后的命令变成支持输入参数的形式,我在网上搜索了之后发现 alias 真的能做到,特别记录一下。
标准用法
linux 系统中本身就有很多 alias 之后的命令,例如
alias grep='grep --color'
alias ll=ls -lh
要让 alias 后的命令在每次启动之后都生效,只需要将其放到~/.bashrc 或者 ~/.bash_profile 中。
进阶用法
alias 后的参数中可以定义一个函数,传参数就在函数内部处理,然后将参数防止在正确的位置,那么就能够实现 alias 后的命令接收参数传递。
例如:
alias rz='f() { ip=$1; rsync -av -e ssh --delete-after ~/GolandProjects/ root@${ip}:/root/ --exclude=.git --exclude=.gitattributes --exclude=.gitignore --exclude=.idea --exclude=.DS_Store; }; f '
一点需要注意的地方:
函数定义后的左大括号之后要有一个空格,否则可能会执行失败
右大括号后边有一个分号,右大括号前面好像没要求必须有一个空格,不过我这里加上了一个空格
总结
还是熟能生巧,要多踩些坑,才能更快解决碰到的问题。