linux脚本变量运算符,linux——Shell 脚本基础篇(变量类型,变量操作,定义,运算与逻辑关系)...
Shell 腳本基礎(chǔ)
1.變量
什么是變量
#a=1
# echo $a
1
變量:可以變化的量
1.2變量名稱注意事項(xiàng)
變量名不能以數(shù)字開頭
不能與系統(tǒng)中已有的環(huán)境變量重名,盡量不要全部使用大寫,盡量不要使用“_”下劃線開頭
最好做到見名知意
不能使用程序中的保留字,列如if,for等
1.3變量類型
字符型
數(shù)值型
整型
浮點(diǎn)型
布爾型 條件是和否
#$echo $a 引用
abc
撤銷 unset +(變量名)a
1.4變量操作
* 設(shè)置變量
* 引用變量
* 撤銷變量
單引號(hào)和雙引號(hào)的區(qū)別
#echo $a
1
#echo '$a'
'$a'
#echo "$a"
1
#echo {$a}b
1b
定義
轉(zhuǎn)義符 \ 還原
#!/bin/bash 程序執(zhí)行腳本
1.5bash變量類型
* 環(huán)境變量
* 本地變量 (局部變量)
* 位置變量
* 特殊變量(bash內(nèi)置的,用來保存某些特殊數(shù)據(jù)的變量,也稱系統(tǒng)變量)
1.5.1 本地變量
VAR_NAME=VALUE //本地變量,作用域?yàn)楫?dāng)前shell進(jìn)程,對(duì)當(dāng)前shell外的其他shell進(jìn)程,v包括當(dāng)前shell,子shell進(jìn)程均無效
local VAR_NAME=VALUE //局部變量,作用域?yàn)楫?dāng)前代碼段,常用于函數(shù)
1.5.2 環(huán)境變量
export VAR_NAME=VALUE //作用域?yàn)楫?dāng)前shell進(jìn)程及其子進(jìn)程`
1.5.3 位置變量
$1,$2,$3, .... //用來引用腳本的參數(shù)
shift [num] //位置變量使用完以后退出,后面的參數(shù)向前推進(jìn)
shift 1 一次往前推,例:$1完成任務(wù)后變成$2執(zhí)行
1.5.4 特殊變量
$# //是傳給腳本的參數(shù)個(gè)數(shù)
$0 //是腳本本身的名字
$! //是shell最后運(yùn)行的后臺(tái)Process的PID
$@ //是傳給腳本的所有參數(shù)的列表
$* //是以一個(gè)單字符串顯示所有向腳本傳遞的參數(shù),與位置變量不同,參數(shù)可超過9個(gè)
$$ //是腳本運(yùn)行的當(dāng)前進(jìn)程ID號(hào)
$? //是顯示上條命令的退出狀態(tài),0表示沒有錯(cuò)誤,其他表示有錯(cuò)誤
1.5.5 bash內(nèi)建環(huán)境變量
PATH
SHELL
UID
HISTSIZE
HOME
PWD
HISTFILE
PS1
1.5.6 只讀變量(常量)
readonly VAR_NAME=VALUE //不能修改值,不能銷毀,只能等shell進(jìn)程終止時(shí)隨之消亡
2.腳本基礎(chǔ)
2.1 什么是腳本?
按實(shí)際需要,結(jié)合命令流程控制機(jī)制實(shí)現(xiàn)的源程序。說白點(diǎn)就是命令的堆砌。`
2.2 程序返回值
程序執(zhí)行在以后有兩類返回值:
* 程序執(zhí)行的結(jié)果
* 程序狀態(tài)返回代碼(0-255)
0:正確執(zhí)行
1-255:錯(cuò)誤執(zhí)行,1,2,127系統(tǒng)預(yù)留,有特殊意義
2.3 腳本測(cè)試
bash如何測(cè)試腳本是否有錯(cuò)誤?報(bào)錯(cuò)后如何排查?
bash -n scriptname //檢`查腳本是否有語法錯(cuò)誤
bash -x scriptname //單步執(zhí)行,檢查腳本錯(cuò)在哪
2.4 寫腳本注意事項(xiàng)
* 禁止將未成功執(zhí)行過的代碼直接寫入腳本
* 腳本中的命令一定要用絕對(duì)路徑
2.5 shell算術(shù)運(yùn)算
A=3
B=6
let C=$A+$B //let 算術(shù)運(yùn)算表達(dá)式
C=$[$A+$B] //$[算術(shù)運(yùn)算表達(dá)式]
C=(($A+$B)) //$((算術(shù)運(yùn)算表達(dá)式))
C=`expr $A + $B` //expr 算術(shù)運(yùn)算表達(dá)式,表達(dá)式中各操作數(shù)及運(yùn)算符之間要有空隔,而且要使用命令引用
2.6 命令間的邏輯關(guān)系
邏輯與:&&
第一個(gè)條件為假時(shí),第二個(gè)條件不用再判斷,最終結(jié)果已經(jīng)有
第一個(gè)條件為真時(shí),第二個(gè)條件必須得判斷
邏輯或:||
前一個(gè)命令的結(jié)果為真時(shí),第二個(gè)命令就不執(zhí)行
前一個(gè)命令的結(jié)果為假時(shí),第二個(gè)命令必須執(zhí)行
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的linux脚本变量运算符,linux——Shell 脚本基础篇(变量类型,变量操作,定义,运算与逻辑关系)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python xml转excel_一个p
- 下一篇: linux把硬盘当内存,把内存当硬盘使,