Linux在任意目录下执行指定的脚本

前言

我有个脚本,我只能在脚本所在的文件夹下面运行,这样的话很不方便,如果我去了别的目录下面的话,我就无法运行这个脚本了…

解决

在profile中设置PATH,

假如我想给 xcall 脚本设置能让在任意的目录下去运行,
此时xcall在/root/soft/script 目录下.

编辑环境变量

[root@zjj101 etc]# cd /etc
[root@zjj101 etc]# vim profile

添加这个内容,注意路径不要写错了
export PATH=$PATH:/root/soft/script
export PATH

# 上面省略........
export HIVE_HOME=/root/soft/hive-1.2.1
export PATH=$PATH:$HIVE_HOME/bin

export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 添加这个内容,注意路径不要写错了
export PATH=$PATH:/root/soft/script
export PATH

注:= 等号两边不能有任何空格。这种方法最好,除非手动强制修改PATH的值,否则将不会被改变。

刷新配置文件

需要在etc目录下去执行source profile

[root@zjj101 etc]# source profile

其次对于profile来说一定要注意整个编辑的过程,一旦你输入一些格式不正确的文本(如把windows编码的文本复制过来),就会造成profile文件无法正常解析等错误

验证效果

这样放在/root/soft/script下的脚本就都能使用了.

在etc目录下面


[root@zjj101 etc]# sh xcall jps
要执行的命令是jps
---------------------zjj101-----------------
22353 NodeManager
90933 DataNode
41974 RunJar
22105 ResourceManager
90808 NameNode
77549 Jps
---------------------zjj102-----------------
28428 Jps
---------------------zjj103-----------------
31409 Jps
[root@zjj101 etc]# 

在root目录下面也能使用

[root@zjj101 etc]# cd ~
[root@zjj101 ~]# sh xcall jps
要执行的命令是jps
---------------------zjj101-----------------
22353 NodeManager
90933 DataNode
41974 RunJar
22105 ResourceManager
90808 NameNode
77598 Jps
---------------------zjj102-----------------
28465 Jps
---------------------zjj103-----------------
31447 Jps
[root@zjj101 ~]# 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值