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

前言

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

解决

在profile中设置PATH,

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

编辑环境变量

[root@zjj101 etc]# cd /etc
[root@zjj101 etc]# vim profile
# 上面省略........
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 ~]# 

猜你喜欢

转载自blog.csdn.net/qq_41489540/article/details/109099887