我看到别人的mac电脑上,sh脚本不需要在前面加“./”的。
如何设置?
很简单,你直接执行 xx.sh的话,shell会在$PATH变量包含的路径里去找文件。但是,unix/linux为了安全的问题,并没有把当前路径放到$PAHT中,并且也不推荐这样做
设置你自己的$PATH环境变量,例如配置你的bashrc,加入一行:
export PATH="$HOME/scripts:$PATH"
并且给你的shell脚本加上可执行属性(chmod +x XXX
)
然后这些脚本只要在你的PATH环境变量下面的,此例中为你的家目录的scripts目录下,可以在任意目录下执行
如果没有在 $PATH 中添加路径,那么 shell,只能去某个路径下查找然后执行,./ 代表的就是当前的路径。。
Unix/Linux 下都是这样。
= - =当然,如果你把这个路径加入了 $PATH 就另待别论了。
我有点好奇,题主看到的是什么脚本。。很多脚本可以直接写好后,可以 link 进 $PATH 的。。比如 Ruby 用 GEM build 一下啦,js 用 node build 一下啦。。
1.chmod u+x xxx.sh
给当前文件加可执行权限。
2.在脚本中第一行加入 #!/usr/bin/env bash
当直接当脚本运行时,告诉操作系统用bash解释器。
3.export PATH="$PATH:." 加入
~/.bashrc
将
“.”
即当前目录加入你的$PATH,这样搜索可执行文件时才能找到你的脚本。