请教一下 zshrc 的 alias 写法

2020-12-31 14:53:27 +08:00
 JCZ2MkKb5S8ZX9pq

在把一些东西从 win 往 mac 搬。

doskey autorun = python %~dp0autorun.py $*  
# 其中%~dp0 是当前 bat 所在路径
alias autorun="python somepath/autorun.py"

请问

1630 次点击
所在节点    macOS
13 条回复
aibangjuxin
2020-12-31 14:58:09 +08:00
装一个 oh-my-zsh,然后自己看看里面的格式,应该差不多都能搞定了
TimePPT
2020-12-31 15:01:17 +08:00
可以试试在 .zshrc 里写 function
JCZ2MkKb5S8ZX9pq
2020-12-31 15:05:34 +08:00
@TimePPT

function 不知道咋写……
win 可以
set long=a_very_long_patn\
然后调用时
doskey sync = python %long%sync.py $*

请问 zshrc 里能设一个这样的长路径为变量嘛?因为很长而且重复很多次。搜变量搜到的都是怎么改环境变量的……
idlerlestat
2020-12-31 15:19:55 +08:00
简单的可以直接写
targetdir=foo
或者写
export targetdir=foo
然后引用是 $targetdir
JCZ2MkKb5S8ZX9pq
2020-12-31 15:26:40 +08:00
@idlerlestat 好的,我试试。
dzdh
2020-12-31 15:27:11 +08:00
我选择在 ~/bin/ 目录写个 shell 脚本兼容各个 shell :doge:
JCZ2MkKb5S8ZX9pq
2020-12-31 15:55:26 +08:00
@idlerlestat ok,搞好了。谢谢。
wengych
2020-12-31 16:25:09 +08:00
当前路径作为参数可以用 ls `pwd`
wengych
2020-12-31 16:26:32 +08:00
alias 只是给命令起别名,并不具备读取 shell 命令行参数的能力,如果你需要使用参数读入,那就需要配合 function 来搞了,给你个 demo,我日常看 log 和 shell 进 POD 的 alias

alias kexec='function _kexec(){ kubectl exec -it -n ${1} $(kubectl get pods -n ${1} -l app=${2} --no-headers -o custom-columns=NAME:.metadata.name) /bin/bash }; _kexec'
alias klog='function _klog(){ kubectl get pods -n ${1} -l app=${2} --no-headers -o custom-columns=NAME:.metadata.name| xargs kubectl logs -n ${1} -f }; _klog'
wengych
2020-12-31 16:27:15 +08:00
追加路径就是
export PATH=/usr/local/bin:$HOME/macports/bin:$HOME/macports/sbin:$GRADLE_HOME/bin:$PATH
JCZ2MkKb5S8ZX9pq
2020-12-31 16:43:34 +08:00
@wengych 嗯,我的大都是 python 配合 fire,试了一下参数直接加后面就可以了。
IgniteWhite
2021-01-01 11:03:36 +08:00
zsh 不用关心双引号这个很不习惯……
ihwbunny
2021-01-04 09:15:25 +08:00
1. 可以,但需要一点假定和技巧:比如你的.py 不知在哪里,但是可以使用诸如 whereis 或者 which 找到,那么可以用下面的命令行提取这个命令所在目录. 比如 xxd,用 whereis 得到 /usr/bin/xxd,获得他的目录的命令是:
dirname $(whereis xxd),得到 /usr/bin; 如果是知道它的目录直接写在后面即可

2. 可以,直接后面跟参数
比如 alias ll="ls -la"
那么写参数的命令:$ ll $HOME

3. 前面都有人说了:export PATH=/your/path/here:$PATH

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/740647

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX