shell腳本聲明變數
⑴ shell腳本重新聲明環境變數的意義
1、腳本中定義的變數,僅僅在本次腳本會話中起作用
2、PATH這種變數是全局變數
3、export是全局變數
4、請去了解下$home/.bashrc之類的shell進程啟動時所載入的一些東西,以及/etc/profile這些文件
⑵ shell變數的作用空間是什麼
Shell是一個用C語言編寫的程序,它是用戶使用linux的橋梁。Shell既是一種命令語言,又是一種程序設計語言,涵蓋的知識點多且雜,卻是雲計算開發人員必須要掌握的技術之一。接下來就給大家梳理一下Shell變數相關的知識。
Linux Shell中的變數可以被指定為任意的數據類型,比如文本字元串或者數值。你也可以通過修改Shell中的變數來改變Shell的樣式。
Shell支持三種定義變數的方式:
variable=value
variable='value'
variable="value"
variable是變數名,value是賦給變數的值。如果value不包含任何空白符(例如空格、Tab縮進等),那麼可以不使用引號;如果value包含了空白符,那麼就必須使用引號包圍起來。注意,賦值號=的周圍不能有空格。
Shell變數的命名規范和大部分編程語言一樣:變數名由數字、字母、下劃線組成;必須以字母或者下劃線開頭;不能使用Shell里的關鍵字(通過help命令可以查看保留關鍵字)。
Linux中Shell變數分為系統變數和用戶自定義變數,系統變數包括$HOME、$PWD、$SHELL、$USER、echo $SHELL以及顯示當前Shell中所有變數set。
Shell自定義變數包括1)定義變數:變數=值;2)撤銷變數:unset變數;3)聲明靜態變數:readonly變數,注意不能unset;4)使用export把變數提升為全局環境變數,如/etc/profile中的TOMCAT_HOME變數,且在另外的/opt/tmp/shell/myShell.sh腳本中使用該環境變數。
Shell設置環境變數
基本語法:
1)export:變數名=變數值(功能描述:將shell變數輸出為環境變數)
2)source:配置文件(功能描述:讓修改後的配置文件立即生效)
3)echo:$變數名(功能描述:查詢環境變數的值)
單行注釋:#
多行注釋::<<!需要注釋的內容!
Shell腳本很適合處理純文本類型的數據,而Linux中幾乎所有的配置文件、日誌文件(如NFS、Rsync、Httpd、Nginx、MySQL等),以及絕大多數的啟動文件都是純文本類型的文件。Shell是運維人員必須要掌握的技能,此外還需要掌握Linux、信息安全、Docker容器等。
⑶ shell腳本怎麼輸出一行兩個值並定義兩個變數
咨詢記錄 · 回答於2021-11-01
⑷ 如何聲明和使用布爾變數的shell腳本
如果您需要運行一些測試,得到一個布爾結果在一個可讀的形式你可以試試這個:
但記住表達只是評估過程中的「如果」
#!/bin/bash
echo "running"
AA="[ -e a.sh ]"
if `$AA`
then
echo 1
else
echo 0
fi
echo "done"
⑸ 如何在shell腳本中使用變數
在網路中 搜索 linux 系統中使用變數 關鍵詞 ,有問題網路。 下面是我查的示例。
顯示環境變數HOME
$ echo $HOME
/home/redbooks
2. 設置一個新的環境變數hello
$ export HELLO="Hello!"
$ echo $HELLO
Hello!
3. 使用env命令顯示所有的環境變數
$ env
HOSTNAME=redbooks.safe.org
PVM_RSH=/usr/bin/rsh
Shell=/bin/bash
TERM=xterm
HISTSIZE=1000
...
4. 使用set命令顯示所有本地定義的Shell變數
$ set
BASH=/bin/bash
BASH_VERSINFO=([0]="2"[1]="05b"[2]="0"[3]="1"[4]="release"[5]="i386-redhat-linux-gnu")
BASH_VERSION='2.05b.0(1)-release'
COLORS=/etc/DIR_COLORS.xterm
COLUMNS=80
DIRSTACK=()
DISPLAY=:0.0
...
5. 使用unset命令來清除環境變數
set可以設置某個環境變數的值。清除環境變數的值用unset命令。如果未指定值,則該變數值將被設為NULL。示例如下:
$ export TEST="Test..." #增加一個環境變數TEST
$ env|grep TEST #此命令有輸入,證明環境變數TEST已經存在了
TEST=Test...
$ unset $TEST #刪除環境變數TEST
$ env|grep TEST #此命令沒有輸出,證明環境變數TEST已經存在了
6. 使用readonly命令設置只讀變數
如果使用了readonly命令的話,變數就不可以被修改或清除了。示例如下:
$ export TEST="Test..." #增加一個環境變數TEST
$ readonly TEST #將環境變數TEST設為只讀
$ unset TEST #會發現此變數不能被刪除
-bash: unset: TEST: cannot unset: readonly variable
$ TEST="New" #會發現此也變數不能被修改
-bash: TEST: readonly variable
環境變數的設置位於/etc/profile文件
如果需要增加新的環境變數可以添加下屬行
export path=$path:/path1:/path2:/pahtN
-----------------------------------------------------------------------------------------------------------------------
1.Linux的變數種類
按變數的生存周期來劃分,Linux變數可分為兩類:
1.1 永久的:需要修改配置文件,變數永久生效。
1.2 臨時的:使用export命令聲明即可,變數在關閉shell時失效。
2.設置變數的三種方法
2.1 在/etc/profile文件中添加變數【對所有用戶生效(永久的)】
用VI在文件/etc/profile文件中增加變數,該變數將會對Linux下所有用戶有效,並且是「永久的」。
例如:編輯/etc/profile文件,添加CLASSPATH變數
# vi /etc/profile
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
註:修改文件後要想馬上生效還要運行# source /etc/profile不然只能在下次重進此用戶時生效。
2.2 在用戶目錄下的.bash_profile文件中增加變數【對單一用戶生效(永久的)】
用VI在用戶目錄下的.bash_profile文件中增加變數,改變數僅會對當前用戶有效,並且是「永久的」。
例如:編輯guok用戶目錄(/home/guok)下的.bash_profile
$ vi /home/guok/.bash.profile
添加如下內容:
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
註:修改文件後要想馬上生效還要運行$ source /home/guok/.bash_profile不然只能在下次重進此用戶時生效。
2.3 直接運行export命令定義變數【只對當前shell(BASH)有效(臨時的)】
在shell的命令行下直接使用[export 變數名=變數值] 定義變數,該變數只在當前的shell(BASH)或其子shell(BASH)下是有效的,shell關閉了,變數也就失效了,再打開新shell時就沒有這個變數,需要使用的話還需要重新定義。
3.環境變數的查看
3.1 使用echo命令查看單個環境變數。例如:
echo $PATH
3.2 使用env查看所有環境變數。例如:
env
3.3 使用set查看所有本地定義的環境變數。
unset可以刪除指定的環境變數。
4.常用的環境變數
PATH 決定了shell將到哪些目錄中尋找命令或程序
HOME 當前用戶主目錄
HISTSIZE歷史記錄數
LOGNAME 當前用戶的登錄名
HOSTNAME指主機的名稱
SHELL 當前用戶Shell類型
LANGUGE 語言相關的環境變數,多語言可以修改此環境變數
MAIL當前用戶的郵件存放目錄
PS1基本提示符,對於root用戶是#,對於普通用戶是$
⑹ linux 聲明環境變數:在shell腳本文件中用export 聲明的變數,是環境變數嗎
如果在一個shell腳本程序中定義了一個變數,當該腳本程序運行時,這個定義的變數只是該腳本程序內的一個局部變數,其他的shell不能引用它,要使某個變數的值可以在其他shell中被改變,可以使用export命令對已定義的變數進行輸出。export的效力僅限於該次登陸,重啟後失效。
⑺ 如何正確在Linux Shell腳本中定義一個時間變數
1、創建腳本 test.sh,並入截圖內容。