快捷菜单
常用功能一站直达
更多功能请点顶栏「快捷菜单」
函数 rz() 和 alias 的核心区别
问题
1rz() {
2 cd /d/hugo-teek-private
3 git status
4 git pull
5 echo "*******************************************"
6
7 git add -A
8 git commit -m "auto commit: $(date '+%Y-%m-%d %H:%M:%S')"
9 git push
10 git status
11
12 echo "*******************************************"
13 echo "RouxZhee is yyds!"
14 echo "明心见性,向内求索,爱自己"
15}
16
17和 alias 用法有啥区别吗?一句话总结:alias 是简单命令别名,只能做「替换」;函数是完整脚本,能做复杂逻辑、多行命令、流程控制,功能完全碾压 alias。
我直接结合你写的 rz() 函数给你讲清楚,一看就懂。
rz() 是啥你写的是一个 Shell 函数,它能:
你只需要在终端输:
1rz就能自动跑完整套 Git 同步操作。
alias 能做什么?(非常有限)alias 只是简单的字符串替换,只能做「短名字 = 长命令」。
比如:
1alias gs="git status"
2alias gp="git pull"输 gs → 等价于输 git status。
你这套 rz 操作根本不可能用 alias 优雅实现。
| 特性 | alias(别名) | Shell 函数(你用的 rz()) |
|---|---|---|
| 复杂度 | 简单单行命令 | 完整脚本、多行逻辑 |
| 变量/日期 | 不支持/很难 | 完美支持 $(date) |
| 流程控制 | 无 | 可加 if、for、while |
| 代码结构 | 无结构 | 清晰、可维护 |
| 复用性 | 弱 | 强 |
| 适合场景 | 短命令简化 | 自动化、批量操作、工作流 |
1alias rz="cd /d/hugo-teek-private && git status && git pull && echo \"***\" && git add -A && git commit -m \"auto commit: \$(date '+%Y-%m-%d %H:%M:%S')\" && git push && git status && echo \"***\" && echo \"RouxZhee is yyds!\" && echo \"明心见性...\""又长又乱,改一行都费劲。
结构清晰、易读、易改、可扩展,这才是正常开发用的。
简单命令 → 用 alias
1alias gs="git status"
2alias gp="git push"批量/自动化/工作流 → 必须用函数
你写的 rz 就是标准最佳实践,非常正确。
两者可以共存,互不冲突。
你现在用的 rz() 写法完全正确、比 alias 强大太多,非常适合做一键同步 Git 这种工作流。
经测试,可完美实现预期效果;
1# 1. 用追加模式写入函数
2tee -a /etc/profile <<'EOF'
3rz() {
4 cd /d/hugo-teek-private
5 git status
6 git pull
7 echo "*******************************************"
8
9 git add -A
10 git commit -m "auto commit: $(date '+%Y-%m-%d %H:%M:%S')"
11 git push
12 git status
13
14 echo "*******************************************"
15 echo "RouxZhee is yyds!"
16 echo "明心见性,向内求索,爱自己"
17}
18EOF
19
20# 2. 立即生效
21source /etc/profile
22
23# 3. 测试
24rz结束。
日历 · 精选 · 友链 · 更多
如果内容对你有帮助,欢迎请我喝杯咖啡 ☕



One的公众号
爱折腾博客的小白