shell編程之變量-創(chuàng)新互聯(lián)

shell編程之變量

前言

  1. 什么是shell變量?
  2. 為什么需要shell變量?
  3. 如何定義shell變量?

本文主要帶你了解shell變量的相關(guān)概念、shell變量的使用與作用等基礎(chǔ)知識,適合初學(xué)者學(xué)習(xí),了解。

創(chuàng)新互聯(lián)主營洪湖網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App制作,洪湖h5微信小程序開發(fā)搭建,洪湖網(wǎng)站營銷推廣歡迎洪湖等地區(qū)企業(yè)咨詢

一、shell變量的概念

? 各種shell環(huán)境中都屬于到了“變量”的概念。shell變量用來存放系統(tǒng)和用戶需要使用的特定參數(shù)(值),而且這些參數(shù)可以根據(jù)用戶的設(shè)定或系統(tǒng)環(huán)境的變化而變化。通過使用變量,shell程序可以提供更加靈活的功能,適應(yīng)性更強(qiáng)。

? 常見的shell變量的類型包括自定義變量、環(huán)境變量、位置變量、預(yù)定義變量。

1、自定義變量

? 系統(tǒng)用戶自己定義,只在自己的shell環(huán)境中有效。

下面通過實(shí)例來解釋如何定義新的變量,如何查看和引用變量以及變量賦值的特殊操作。

[root@localhost shell]# Value=tome
[root@localhost shell]# Version=6.0
[root@localhost shell]# echo $V
$Value    $Version  
[root@localhost shell]# echo $Value 
tome
[root@localhost shell]# echo $Version 
6.0
[root@localhost shell]# echo $Version4.5
.5
[root@localhost shell]# echo ${Version}4.5
6.04.5
//以上是變量定義與查看操作
//下面是變量賦值特殊操作
[root@localhost shell]# vlan=vlan 5.0
bash: 5.0: 未找到命令...
[root@localhost shell]# vlan="vlan 5.0"    //雙引號
[root@localhost shell]# echo $vlan 
vlan 5.0
[root@localhost shell]# ss=8.8
[root@localhost shell]# qq="QQ $ss"
[root@localhost shell]# echo $qq
QQ 8.8
[root@localhost shell]# qq='QQ $ss'   //單引號
[root@localhost shell]# echo $qq
QQ $ss
[root@localhost shell]# ls -lh `which useradd`  //反撇號(esc下方按鍵)
-rwxr-x---. 1 root root 116K 11月  6 2016 /sbin/useradd

[root@localhost shell]# read hehe    //從鍵盤輸入
123
[root@localhost shell]# echo $hehe 
123

設(shè)置變量的作用范圍,export設(shè)置全局變量,bash可以進(jìn)入子shell中。

[root@localhost shell]# echo $hehe  
123
[root@localhost shell]# bash         //進(jìn)入子shell中
[root@localhost shell]# echo $hehe   //無法調(diào)用父shell變量

[root@localhost shell]# exit       //返回父shell中
exit
[root@localhost shell]# echo $hehe 
123
[root@localhost shell]# export hehe   //定義全局
[root@localhost shell]# bash
[root@localhost shell]# echo $hehe
123

下面來介紹一下數(shù)值變量的運(yùn)算

shell變量的數(shù)值運(yùn)算多用于腳本程序的過程控制(如循環(huán)次數(shù)、使用量比較等)。在Bash Shell環(huán)境中,只能進(jìn)行簡單的整數(shù)運(yùn)算,不支持小數(shù)運(yùn)算。

(1)加法運(yùn)算:+
(2)減法運(yùn)算:-
(3)乘法運(yùn)算:*(需要轉(zhuǎn)義)
(4)除法運(yùn)算:/
(5)求模(取余)運(yùn)算:%

運(yùn)算實(shí)例:

[root@localhost shell]# X=36
[root@localhost shell]# Y=33
[root@localhost shell]# expr $X + $Y
69
[root@localhost shell]# expr $X - $Y
3
[root@localhost shell]# expr $X \* $Y
1188
[root@localhost shell]# expr $X / $Y
1
[root@localhost shell]# expr $X %  $Y
3

2.特殊變量

(1)環(huán)境變量——可以修改

[root@localhost shell]# env
XDG_SESSION_ID=11
HOSTNAME=localhost.localdomain
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
USER=root
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
MAIL=/var/spool/mail/root
PWD=/root/shell
LANG=zh_CN.UTF-8
HISTCONTROL=ignoredups
HOME=/root
SHLVL=2
LOGNAME=root
XDG_DATA_DIRS=/root/.local/share/flatpak/exports/share/:/var/lib/flatpak/exports/share/:/usr/local/share/:/usr/share/
LESSOPEN=||/usr/bin/lesspipe.sh %s
hehe=123
XDG_RUNTIME_DIR=/run/user/0
_=/bin/env
[root@localhost shell]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

(2)位置變量 ——為程提供操作參數(shù)。使用$n(n范圍(1~9))

[root@localhost shell]# vim add2.sh
[root@localhost shell]# cat add2.sh 
#!/bin/bash
sum=`expr $1 + $2`
echo "$1 + $2 = $sum"
echo $sum
[root@localhost shell]# ./add2.sh 2 3
2 + 3 = 5
5

(3)預(yù)定義變量——只能使用無法更改的變量

$#——命令行中位置參數(shù)的個(gè)數(shù)

$*——所有位置參數(shù)的內(nèi)容

$?——前一條命令執(zhí)行后的狀態(tài),返回0表示正確,反之錯(cuò)誤。

$0——腳本名稱

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文題目:shell編程之變量-創(chuàng)新互聯(lián)
文章來源:http://muchs.cn/article8/phjop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、建站公司品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站營銷、云服務(wù)器、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站