OSX 怎么让 terminal 命令行支持自己写的程序

2019-10-22 13:39:54 +08:00
 b00tyhunt3r
正在写一个基于命令行的聊天程序练手,想问一下如何像例如 nginx 或者 brew 等等诸多应用那样想使用的时候直接在终端里输入 nginx xxxx 就行了而不用./指定所在目录再启动?是需要把程序放在某个特殊的目录下吗?不知道说清楚没,谢谢大佬解惑!
1813 次点击
所在节点    程序员
8 条回复
zmxnv123
2019-10-22 13:43:39 +08:00
path
arrow8899
2019-10-22 13:46:13 +08:00
export PATH=/your/app:$PATH
xingheng
2019-10-22 13:59:00 +08:00
nginx 和 brew 这类命令可以直接在你的 terminal 里面用是因为你当前 shell session 的环境变量 PATH 里面包含了他们的所在路径,用`where brew`可以找到对应执行入口的路径。

vim $(where brew),查看 brew 的执行入口文件是什么样的:
#!/bin/bash
set +o posix
....

从这里开始 shell 会解释执行这个 bash 脚本文件....你可以把自己写的脚本文件放到 PATH 之中的任一路径中,然后使用脚本文件名就可以被 shell 发现。

当然还有其他方法,比如 alias,shell/bash function,都可以满足你的这类需求。
KuroNekoFan
2019-10-22 14:13:45 +08:00
alias
zunceng
2019-10-22 15:03:53 +08:00
export PATH="/Users/$User/bin:$PATH"
zunceng
2019-10-22 15:04:52 +08:00
然后把 你写的软件 安装(软链接)进你 home 下的 bin 目录
shawndev
2019-10-22 16:00:28 +08:00
1. 使用绝对路径
2. 将可执行文件加入 PATH 变量,并加入到.bash_profile 或者 .zshrc
gunjianpan
2019-10-22 16:11:54 +08:00
软链接一下 ln -s

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

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

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

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

© 2021 V2EX