前言

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

解决

在profile中设置PATH,

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

编辑环境变量

  1. [root@zjj101 etc]# cd /etc
  2. [root@zjj101 etc]# vim profile

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

  1. # 上面省略........
  2. export HIVE_HOME=/root/soft/hive-1.2.1
  3. export PATH=$PATH:$HIVE_HOME/bin
  4. export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
  5. export PATH=$JAVA_HOME/bin:$PATH
  6. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  7. # 添加这个内容,注意路径不要写错了
  8. export PATH=$PATH:/root/soft/script
  9. export PATH

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

刷新配置文件

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

  1. [root@zjj101 etc]# source profile

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

验证效果

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

在etc目录下面

  1. [root@zjj101 etc]# sh xcall jps
  2. 要执行的命令是jps
  3. ---------------------zjj101-----------------
  4. 22353 NodeManager
  5. 90933 DataNode
  6. 41974 RunJar
  7. 22105 ResourceManager
  8. 90808 NameNode
  9. 77549 Jps
  10. ---------------------zjj102-----------------
  11. 28428 Jps
  12. ---------------------zjj103-----------------
  13. 31409 Jps
  14. [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 ~]#