前言
我有个脚本,我只能在脚本所在的文件夹下面运行,这样的话很不方便,如果我去了别的目录下面的话,我就无法运行这个脚本了…
解决
在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 ~]#