现在 alias 和方法越来越多,后面连名字都记不住了,导致每次都要先用 alias 或 declare -F 看一下,再能回忆起来。
现在想把这些东西整一整,把它们聚合到一起,搞个 CLI 工具出来,名字和参数都规范一下,还可以打印帮助信息。
直接用 bash 写太恶心了,所以想找一个快速简易的方法。大家有没有什么好的建议?
最好是修改后不需要编译的,这样容易维护,毕竟只是脚本工具。
1
beryl 2020-11-24 11:49:07 +08:00
那可能只能是 bash 是最优选择吧
|
2
dzdh 2020-11-24 11:50:05 +08:00
你需要 go
|
3
20498860 2020-11-24 12:01:12 +08:00
|
4
x97bgt OP |
5
x97bgt OP |
6
zhuangzhuang1988 2020-11-24 12:30:11 +08:00
换 powershell
代码可读 可调试 有 ide 加成, 跨平台 功能强大 |
7
Tumblr 2020-11-24 12:34:13 +08:00 1
换 pwsh 吧,写成 module,非常方便,还有很强的可移植性。
@20498860 #3 你的这个需求,Windows 平台上明显转 PowerShell 啊( PowerShell 完全包含了 cmd 命令)。 |
8
loading 2020-11-24 12:36:00 +08:00 via Android
不如做个男人( man )?
|
10
UN2758 2020-11-24 12:43:58 +08:00
说起来我也是
|
11
liberty1900 2020-11-24 12:44:28 +08:00 via Android
写好了发个 github repo, 我们就可以白嫖了
|
12
guxingke 2020-11-24 12:46:06 +08:00
zsh
==== $ alias | grep ^v vm='vim ~/config/zsh-customs/plugins/me/me.plugin.zsh' vv='vim ~/.vim/main.vim' vz='vim ~/.zshrc' $ functions | grep ^j j () { j11 () { j12 () { j13 () { j15 () { j8 () { ===== 也许可以满足你的需求 |
13
fzinfz 2020-11-24 13:03:31 +08:00
一些心得,供参考:
0. alias/declare -F 统一用 type, 可以少打很多字 1. 命名:比如 git_* 2. 整合:不修改系统的 function 为可 run+source 的单个.sh ,并高亮+打印 raw cmd:my_eval(){ echo_color "$@"; eval "$@"; } 3. alias/function 命名提示参数,或询问:[ -z "$1" ] && p=default || p=$1 4. 复杂的命令组合,写个命令行生成器,比如: https://html.ferro.pro/docker.html 参考我的 shell 大杂烩: https://github.com/fzinfz/scripts/tree/master/linux (目前还是太乱而且 bug 太多,轻喷) |
14
no1xsyzy 2020-11-24 13:32:28 +08:00
我觉得需要一个 words prefix 的补全是最好了,最好支持 history 分析。
就像 JB 家那样 sudo apt install 可以 sai<tab> 或者 sudai<tab> 这样,前 N 分段各取长度至少为 1 的前缀 说不定可以写一个…… |
15
no1xsyzy 2020-11-24 13:33:34 +08:00
大概可以写一个类似 thefuck 那样的工具,不然嵌入 shell 有点困难……
还是说 fish 有这种了? |
16
fzinfz 2020-11-24 13:35:34 +08:00
以上 3 例子举错了,更正:f() { [ -z "$1" ] && read -p "P1: " p || p=$1; echo $p; } # 只适合少参数简单情况
|
17
xiaochun41 2020-11-24 14:21:38 +08:00
似乎是需要一个好用的 shell 环境,比如 zsh + oh-my-zsh
|
18
wellsc 2020-11-24 14:41:35 +08:00 via iPhone
放到 dotfiles 里不就好了
|
19
lamCJ 2020-11-24 15:05:41 +08:00
我觉得如果只是个人用的一些小脚本的话没必要单独包装成命令行 一般单独发布的命令行都是比较通用的公用工具
你就只用 `alias` 简化一些比较长的常用命令(可能带一坨参数) 其他稍微复杂点的写成单独的可执行脚本 bash/go/python 都无所谓 放到统一的目录(`~/bin/`)配置到环境变量 最后所有这些都放进 dotfiles 个人库 已经够方便维护和分发了吧 都是些脚本配置下就能自动统一工作环境 命名讲究点应该不至于回忆不起干啥的 |
20
omph 2020-11-24 15:26:01 +08:00
来,加个中间层
[denisidoro/navi: An interactive cheatsheet tool for the command-line and application launchers]( https://github.com/denisidoro/navi) |
23
jinhan13789991 2020-11-24 16:05:19 +08:00
分目录和文件名存放,然后里面写好注释~
|