如何让 Shell 脚本全局执行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让 Shell 脚本全局执行相关的知识,希望对你有一定的参考价值。

参考技术A 碰巧前面一篇 文章 中浅浅介绍了一下 Shell。然后最近刚好要写一个 Shell 脚本去批量去处理一下文件,因此写下来记录一下,尽管思路很简单。

假设我们 ~/Desktop 目录下有一个 Shell 脚本 myscript.sh ,如下:

使用 source 命令便可执行此脚本:

然后我在想能否将 source 指令也省略掉呢,直接 myscript.sh 这样:

然后 Shell 解析器将 myscript.sh 识别成了一个「指令」,而不是一个文件。由于 Shell 脚本的扩展名是可选的,因此尝试将 .sh 扩展名去掉试试:

跟前面有点不一样了,它提示没有权限。哦,原来一个 Shell 脚本只有具备了「可执行权限」方可被执行。那好办,我们将其权限改一改:

其实通过 Finder 可以观察到其图标变了样(不同系统可能不一样),该图标表示可执行文件。

于是我们兴高采烈地执行了:

可现实却狠狠地打了一巴掌,咋回事!!!原来是要将「可执行文件」所在目录配置到 PATH 环境变量中,因为在终端工具中输入指令的时候,系统会从环境变量 PATH 所包含的路径中「逐一查找」相应的可执行文件,如果最后都找不到的话,就会抛出错误并提示找不到指令。

所以有几种解决方法:

在 Shell 配置文件中加入 ~/Desktop 路径即可:

具体是哪个配置将取决于你使用的是哪一种 Shell,我这里是 zsh,因此用户级别的配置文件是 ~/.zshrc 文件,添加完之后,记得 source ~/.zshrc 刷新变量使其生效。

至此,你就可以在任意目录下执行 myscript 指令了。

这样执行脚本也不用输入那一串长长的地址,舒服多了。

One more thing...

前面我们为了不让 myscript.sh 被识别为一个指令,因此把扩展名删掉了。但如果我们不希望去掉扩展名,可以怎样做呢?毕竟我们在修改脚本的时候,编辑器根据扩展名会有语法高亮、语法提示等好处。很简单,我们修改下 Shell 配置即可:

没错,配置多一个别名即可。

The end.

Postman预执行脚本和后执行脚本

参考技术A 1.get请求:

2.post请求(模拟登录接口的请求)

3.设置全局变量

引用全局变量:
qq

以上是关于如何让 Shell 脚本全局执行的主要内容,如果未能解决你的问题,请参考以下文章

如何让shell脚本变成可执行文件

如何让Android系统或Android应用执行shell脚本

如何让shell脚本变成可执行文件

如何让Android系统或Android应用执行shell脚本

linux下如何让脚本里面的几条命令重复执行

如何让php执行shell