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

 更新时间:2026年02月05日 09:34:07   作者:禾三几  
本文介绍了Linux中的环境变量配置方法,包括/etc/profile和~/.bashrc,作者强调了bash脚本环境变量的重要性,并提出了三种解决方法:在脚本中加入环境变量、配置~/.bashrc和将/etc/profile加入~/.bashrc

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命令 linux文本系列-file命令用法

    一天一个shell命令 linux文本系列-file命令用法

    这篇文章主要介绍了一天一个shell命令 linux文本系列-file命令用法,需要的朋友可以参考下
    2016-06-06
  • Linux常用命令之性能命令

    Linux常用命令之性能命令

    这篇文章主要介绍了Linux常用命令之性能命令,文章讲解的很清楚,有对于这方面不了解的同学可以研究下
    2021-02-02
  • Linux使用curl访问网页和wget下载文件

    Linux使用curl访问网页和wget下载文件

    这篇文章介绍了Linux使用curl命令访问网页和wget下载文件的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Linux Shell 脚本编程入门教程

    Linux Shell 脚本编程入门教程

    Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh),Shell是用户与Linux操作系统沟通的桥梁,对本文感兴趣的朋友一起看看吧
    2015-11-11
  • Shell脚本获取国内各大运营商网段脚本分享

    Shell脚本获取国内各大运营商网段脚本分享

    这篇文章主要介绍了Shell脚本获取国内各大运营商网段脚本分享,本文使用亚太地区网络信息记录作为数据源,然后使用Shell脚本分析国内的网段,需要的朋友可以参考下
    2014-12-12
  • 一个监控网卡流量的shell脚本

    一个监控网卡流量的shell脚本

    这篇文章主要为大家分享一个简单的监控流量脚本,需要的朋友可以参考下
    2016-08-08
  • Linux中10个有用的命令行补全例子

    Linux中10个有用的命令行补全例子

    这篇文章主要为大家详细介绍了Linux中10个有用的命令行补全例子,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Shell脚本实现批量下载网络图片代码分享

    Shell脚本实现批量下载网络图片代码分享

    这篇文章主要介绍了Shell脚本实现批量下载网络图片代码分享,本文基于下载Yahoo天气图标而写,图片地址需有一定的规则,需要的朋友可以参考下
    2014-09-09
  • Shell脚本实现其他变量定义

    Shell脚本实现其他变量定义

    本文主要介绍了Shell脚本实现其他变量定义,包括只读、环境变量、数组、命令替换、间接引用和默认值赋值,具有一定的参考价值,感兴趣的可以了解一下
    2025-08-08
  • Linux在shell中自动生成1到100的数组方法(两种方法)

    Linux在shell中自动生成1到100的数组方法(两种方法)

    之前自己在写shell脚本的时候,需要自动创建1-100的文本确不知道该如何去创建。今天小编给大家分享两种方法,需要的朋友参考下
    2017-02-02

最新评论