shell腳本環(huán)境變量.bashrc配置實(shí)踐
shell腳本環(huán)境變量.bashrc配置
1.首先關(guān)于 Linux中的環(huán)境變量配置不只有’/etc/profile’,還有
‘/etc/profile.d/*.sh' ‘~/.bash_profile' ‘~/.bashrc' ‘/etc/bashrc'
等
2.顯然帶有bash的一般跟我們編寫腳本有關(guān)
3.問(wèn)題來(lái)了:當(dāng)我們編寫完腳本啟動(dòng)時(shí)會(huì)報(bào)找不到相關(guān)變量的錯(cuò)誤
例如:
下面是一個(gè)zookeeper的集群?jiǎn)?dòng)關(guān)閉腳本案例
#! /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
當(dāng)我們執(zhí)行之后,發(fā)現(xiàn)zk并沒有啟動(dòng),查看日志之后發(fā)現(xiàn)報(bào)錯(cuò)是拒絕連接,或者只有一行文字:找不到j(luò)ava。
這就是bash腳本的環(huán)境變量沒有配置,但是我們已經(jīng)在’/etc/profile’中配置好了相關(guān)環(huán)境變量,這是因?yàn)閟sh登錄不會(huì)自動(dòng) source環(huán)境變量
此時(shí)解決問(wèn)題的方法有三:
方法一
改寫腳本,加入環(huán)境變量
#! /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’(當(dāng)每次執(zhí)行腳本時(shí)都會(huì)加載此文件)
./bashrc為隱藏文件
在家目錄下直接打開

此時(shí),我們需要哪些環(huán)境變量就可以直接添加到此文件后面就可以了

然后分發(fā)其他節(jié)點(diǎn),最后別忘了source ./bashrc
方法三
此方法和方法二類似,我們依舊打開./bashrc文件
由于我們已經(jīng)將相關(guān)環(huán)境變量配置到了‘/etc/profile’文件中,
所以此時(shí)將‘/etc/profile’加入到./bashrc文件中就可以了

分發(fā)其他節(jié)點(diǎn),分別source /home/用戶名/.bashrc
此時(shí)腳本環(huán)境變量就解決好了
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
linux shell中curl 發(fā)送post請(qǐng)求json格式問(wèn)題的處理方法
這篇文章主要介紹了linux shell中curl 發(fā)送post請(qǐng)求json格式問(wèn)題的處理方法,文中給大家提到了linux中使用curl發(fā)送post請(qǐng)求問(wèn)題,需要的朋友可以參考下2018-07-07
Linux下使用nmcli命令連接網(wǎng)絡(luò)的流程步驟
在使用ubuntu系統(tǒng)的時(shí)候,有時(shí)候不方便使用桌面,使用ssh遠(yuǎn)程連接,可能需要使用nmcli命令來(lái)連接網(wǎng)絡(luò),本文將介紹如何使用nmcli命令連接網(wǎng)絡(luò),需要的朋友可以參考下2025-06-06
Linux各項(xiàng)目環(huán)境部署記錄(換服務(wù)器部署腳本整理)
每次換便宜的服務(wù)器都要導(dǎo)致環(huán)境重新部署一遍,十分麻煩,于是把每次部署的腳本整理了一下,方便在服務(wù)器上快速進(jìn)行部署,基于?CentOS2023-05-05
linux命令學(xué)習(xí)之10個(gè)網(wǎng)絡(luò)命令和監(jiān)控命令
下面列出來(lái)的10個(gè)基礎(chǔ)的每個(gè)linux用戶都應(yīng)該知道的網(wǎng)絡(luò)和監(jiān)控命令,大家參考使用吧2014-01-01
shell學(xué)習(xí)之printf命令格式化輸出語(yǔ)句
printf命令模仿C程序庫(kù)(library)里的printf()庫(kù)程序(library routine)。它幾乎復(fù)制了該函數(shù)的所有功能。不過(guò)在Shell層級(jí)的版本上,會(huì)有些差異。下面這篇文章就給大家主要介紹了shell中printf命令格式化輸出語(yǔ)句的相關(guān)資料,需要的朋友可以參考下。2017-01-01
CentOS Stream release 9使用chrony服務(wù)同步時(shí)間的操作方法
這篇文章主要介紹了CentOS Stream release 9 使用chrony服務(wù)同步時(shí)間,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-04-04
監(jiān)控php-fpm并自動(dòng)重啟服務(wù)的shell腳本
這篇文章主要介紹了監(jiān)控php-fpm并自動(dòng)重啟服務(wù)的shell腳本,腳本的主要功能:不斷檢查網(wǎng)站的狀態(tài),如果異常就重啟php-fpm服務(wù),需要的朋友可以參考下2014-05-05

