如何让脚本在任意地方可执行
大家好,我是咔咔 不期速成,日拱一卒
在上一期文章《闯祸了,生成环境执行了DDL操作》中,为了防止在线DDL造成的SQL阻塞使用了第三方插件pt-online-schema-change
。
在使用这个插件修改表数据时需要加入很多参数,例如数据库名、表名、数据库地址、数据库密码等参数。
然后将插件需要执行一系列参数优化为一个脚本,那么问题来了,如何让这个脚本在任意地方都可以执行呢?
在上期文章咔咔把执行的脚本放置到了如下位置,接下来看看都有哪些方法可以让这个脚本可以在任意地方都可以执行。

<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px;">死磕MySQL系列</figcaption>
一、将脚本路径添加到.bashrc文件中
bash运行起来首先后加载.bahsrc文件,so可以直接把需要执行的脚本路径添加到此文件中
那你得知道.bashrc文件在哪吧!位置就在当前用户的根目录,执行cd ~后即可看到此文件

接着在这个文件中把你的脚本路径放进去即可,添加最后一行代码export PATH="/script:$PATH"

最后,再使用source
命令使我们的修改生效
<pre class="custom" data-tool="mdnice编辑器" style="margin-top: 10px; margin-bottom: 10px; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;">source ~/.bashrc
</pre>
来试试直接在根目录执行给evt_sms表添加一个bash字段,看到下图就知道我们的配置成功了

二、将脚本路径添加到.profile文件中
文件路径在etc/profile
在文件末尾加上export PATH="$PATH:$HOME/script"
即可
这种方式需要退出终端才会生效

三、使用软链的方式
把写好的脚本复制到/usr/local/bin下
添加一个软连接即可ln -s /usr/local/bin/pt.sh /usr/bin/pt.sh
然后就可以在任意地方执行pt.sh这个脚本了
四、总结
本文简单的跟大家聊了两种让你的脚本在任何地方都可以执行,会使用其中一种就行了。
但实现的方式都要有了解,因为每个人喜欢处理的方式不一致,当你遇到这种脚本时你要知道他是在哪里配置的,然后你才可以修改它
五、推荐阅读
打开order by的大门,一探究竟《死磕MySQL系列 十二》
闯祸了,生成环境执行了DDL操作《死磕MySQL系列 十四》
“
坚持学习、坚持写作、坚持分享是咔咔从业以来所秉持的信念。愿文章在偌大的互联网上能给你带来一点帮助,我是咔咔,下期见。
”