shell脚本环境变量.bashrc配置实践

作者:

文章目录
  • 1.首先关于 Linux中的环境变量配置不只有’/etc/profile’,还有 ‘/etc/profile.d/*.sh’ ‘~/.bash_profile’ ‘~/.bashrc’ ‘/etc/bashrc’ 等 2.显然带有bash的一般跟我们编写脚本有关 3.问题来了:当我们编写完脚本启动时会报找不到相关变量的错误 例如: 下面是一个zookeeper的集群启动关闭脚本案例 #! /bin/bash case $1 in “start”){ for i in hadoop101 hadoop102 hadoop103 do ssh $i “/opt/module/zookeeper-3.4.10/bin/zkServer.sh start” done };; “stop”){ for i in hadoop101 hadoop102 hadoop103 do ssh $i “/opt/module/zookeeper-3.4.10/bin/zkServer.sh stop” done };; esac 当我们执行之后,发现zk并没有启动,查看日志之后发现报错是拒绝连接,或者只有一行文字:找不到java。 这就是bash脚本的环境变量没有配置,但是我们已经在’/etc/profile’中配置好了相关环境变量,这是因为ssh登录不会自动 source环境变量 此时解决问题的方法有三:
  • 以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。 您可能感兴趣的文章: Shell脚本变量${}与命令$()替换区别小结 Shell脚本实现环境变量与配置文件应用指南 shell 脚本语言的变量用法示例详解 Shell脚本实现其他变量定义 shell编程规范与变量详解 shell特殊位置变量的问题小结
  • 目录
    • shell脚本环境变量.bashrc配置
      • 方法一
      • 方法二
      • 方法三
    • 总结

      1.首先关于 Linux中的环境变量配置不只有’/etc/profile’,还有

      ‘/etc/profile.d/*.sh'
      ‘~/.bash_profile'
      ‘~/.bashrc'
      ‘/etc/bashrc'

      2.显然带有bash的一般跟我们编写脚本有关

      3.问题来了:当我们编写完脚本启动时会报找不到相关变量的错误

      例如:

      下面是一个zookeeper的集群启动关闭脚本案例

      #! /bin/bash
      case $1 in
      "start"){
         for i in hadoop101 hadoop102 hadoop103
         do
            ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh start"
         done
         };;
      "stop"){
         for i in hadoop101 hadoop102 hadoop103
         do
            ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh stop"
         done
         };;
      esac
      
      

      当我们执行之后,发现zk并没有启动,查看日志之后发现报错是拒绝连接,或者只有一行文字:找不到java。

      这就是bash脚本的环境变量没有配置,但是我们已经在’/etc/profile’中配置好了相关环境变量,这是因为ssh登录不会自动 source环境变量

      此时解决问题的方法有三:

      改写脚本,加入环境变量

      #! /bin/bash
      case $1 in
      "start"){
         for i in hadoop101 hadoop102 hadoop103
         do
            ssh $i "source /etc/profile && /opt/module/zookeeper-3.4.10/bin/zkServer.sh start"
         done
         };;
      "stop"){
         for i in hadoop101 hadoop102 hadoop103
         do
            ssh $i "source /etc/profile && /opt/module/zookeeper-3.4.10/bin/zkServer.sh stop"
         done
         };;
      esac
      

      配置’~/.bashrc’(当每次执行脚本时都会加载此文件)

      ./bashrc为隐藏文件

      在家目录下直接打开

      此时,我们需要哪些环境变量就可以直接添加到此文件后面就可以了

      然后分发其他节点,最后别忘了source ./bashrc

      此方法和方法二类似,我们依旧打开./bashrc文件

      由于我们已经将相关环境变量配置到了‘/etc/profile’文件中,

      所以此时将‘/etc/profile’加入到./bashrc文件中就可以了

      分发其他节点,分别source /home/用户名/.bashrc

      此时脚本环境变量就解决好了

      以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。

      您可能感兴趣的文章:

      • Shell脚本变量${}与命令$()替换区别小结
      • Shell脚本实现环境变量与配置文件应用指南
      • shell 脚本语言的变量用法示例详解
      • Shell脚本实现其他变量定义
      • shell编程规范与变量详解
      • shell特殊位置变量的问题小结

      站内搜索