请教一下 zshrc 的 alias 写法

2020 年 12 月 31 日
 JCZ2MkKb5S8ZX9pq

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

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

请问

2087 次点击
所在节点    macOS
13 条回复
aibangjuxin
2020 年 12 月 31 日
装一个 oh-my-zsh,然后自己看看里面的格式,应该差不多都能搞定了
TimePPT
2020 年 12 月 31 日
可以试试在 .zshrc 里写 function
JCZ2MkKb5S8ZX9pq
2020 年 12 月 31 日
@TimePPT

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

请问 zshrc 里能设一个这样的长路径为变量嘛?因为很长而且重复很多次。搜变量搜到的都是怎么改环境变量的……
idlerlestat
2020 年 12 月 31 日
简单的可以直接写
targetdir=foo
或者写
export targetdir=foo
然后引用是 $targetdir
JCZ2MkKb5S8ZX9pq
2020 年 12 月 31 日
@idlerlestat 好的,我试试。
dzdh
2020 年 12 月 31 日
我选择在 ~/bin/ 目录写个 shell 脚本兼容各个 shell :doge:
JCZ2MkKb5S8ZX9pq
2020 年 12 月 31 日
@idlerlestat ok,搞好了。谢谢。
wengych
2020 年 12 月 31 日
当前路径作为参数可以用 ls `pwd`
wengych
2020 年 12 月 31 日
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 日
追加路径就是
export PATH=/usr/local/bin:$HOME/macports/bin:$HOME/macports/sbin:$GRADLE_HOME/bin:$PATH
JCZ2MkKb5S8ZX9pq
2020 年 12 月 31 日
@wengych 嗯,我的大都是 python 配合 fire,试了一下参数直接加后面就可以了。
FurN1
2021 年 1 月 1 日
zsh 不用关心双引号这个很不习惯……
ihwbunny
2021 年 1 月 4 日
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://study.congcong.us/t/740647

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

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

© 2021 V2EX