linux shell編程入門(mén)

參考資料

博客園

  1. 基礎(chǔ)命令

# 打印 如果字符串中間有空格, 需要加上"". 單引號(hào)會(huì)使變量不起作用
echo str
echo "變量 $param"
# 將字符串作為命令執(zhí)行
echo $(pwd)
echo `ls -al`
# 查看幫助
man bc
  1. 變量

定義變量

變量的賦值=兩側(cè)不能有空格
變量的使用在變量名前加$

a=2
echo $a
  1. 運(yùn)算符

與其他語(yǔ)言類(lèi)似
運(yùn)算符兩邊有空格, 一些運(yùn)算符, 如'*', 需要轉(zhuǎn)義 `*'

nu0=2
nu1=3
echo $nu0 \* $nu1
  1. 整數(shù)運(yùn)算

num0=1
num1=2
# 第一種方法
expr $num0 + $num1
# 第二種方法
echo $[num0+num1]
  1. 浮點(diǎn)數(shù)運(yùn)算

管道10 /3這里的解釋不明白?

# '|'管道將上一個(gè)命令的執(zhí)行結(jié)果作為下一個(gè)命令的參數(shù)
# bc是bash的計(jì)算器
echo "scale=2; 10 / 3" | bc
  1. 判斷語(yǔ)句

if-then-else-fi

# 注意command這里是命令
# 命令正常退出狀態(tài)碼為0, 反之非0
if command
then
  comands
# if語(yǔ)句結(jié)束
fi

變形語(yǔ)句
if-then-elif-then-else-fi

test命令

  • 用于整數(shù)比較, 浮點(diǎn)數(shù)?
    比較符 -eq -ne -gt -ge -lt -le
nu0=1
nu1=2
# 第一種方法
if test $nu0 -lt $nu1
then
  echo nuo小于nu1
fi
# 第二種方法 (( expression )), 注意括號(hào)內(nèi)側(cè)的空格
if (( nuo < nu1 ))
#if(( $nuo < $nu1))
then
  echo nuo小于nu1
fi
  • 用于字符串比較
    字符串比較符 = < > !=,-n(長(zhǎng)度非0),-z(長(zhǎng)度是0), 注意需要轉(zhuǎn)義><
str1=test
str2=test
#第二種方法, 注意比較符之間的空格, 不能去掉$
if [[ $str1 = $str2 ]]
then
  echo 兩個(gè)相等
fi
  • 用于文件比較?

case語(yǔ)句

num=2
case $num in
1)
  echo 1;;
*)
  echo 2;;
esac
  1. 循環(huán)語(yǔ)句

for - do-done

for var in a b c d
do
  echo $var
done

修改分隔符

在for var in list中l(wèi)ist默認(rèn)以空格分隔,如果需要以','分隔, 需要修改$IFS
$','','用比較語(yǔ)句似乎是一樣的, echo $IFS無(wú)結(jié)果?
for var in a,b,c該句在修改后仍然輸出a,b,c?

oldIFS=$IFS
IFS=","
list=a,b,c
for var in $list
do
  echo $var
done
IFS=$oldIFS

c語(yǔ)言式for

for (( i=0; i < 10; i++ ))
do
  echo $i
done

while,until

a=2
#whle test condition
while [ $a -le 2]
do
  echo '愛(ài)吃'
  # break可以加數(shù)字, 當(dāng)前循環(huán)為1, 再外一層循環(huán)2
  break
done
#或者
while (( $a <= 2 ))
#...
  1. 獲得用戶(hù)的輸入

read 加參數(shù), 用戶(hù)輸入將存入指定的變量中.多余的將會(huì)存入最后一個(gè)變量中

#-n 不換行輸入
echo -n "how are you"
read answer
echo $answer
#多個(gè)參數(shù)
read -p  "what do you like?" money  girls
echo $girls

不加參數(shù), 默認(rèn)變量$REPLY
設(shè)置超時(shí)

if read -t 4 "i am happy"
then
  echo 'yes'
else
  echo timeout
fi
  1. 獲取命令參數(shù)

$1第幾位參數(shù)
${10}超過(guò)9

echo "filename: $0"
echo "base filename: $(basename $0)"
echo "$1"
echo "${2}"

$#參數(shù)的數(shù)量

for (( index=0; index <= $#; index++))
do
    # echo ${$index}錯(cuò)誤{}中不能用$, 用!表示
    echo ${!index}
done

$*參數(shù)整體作為一個(gè)字符串
$@參數(shù)分隔成多個(gè)字符

# 這里需要放入""中, 否則因?yàn)閒or會(huì)將字符串按空格分隔
for para in "$*"
do
  echo $para
done
for para in "$@"
do
  echo $para
done
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末邮偎,一起剝皮案震驚了整個(gè)濱河市炕柔,隨后出現(xiàn)的幾起案子鲤嫡,更是在濱河造成了極大的恐慌聪廉,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件罩阵,死亡現(xiàn)場(chǎng)離奇詭異变秦,居然都是意外死亡障癌,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)末早,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)烟馅,“玉大人,你說(shuō)我怎么就攤上這事然磷≈3茫” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵姿搜,是天一觀(guān)的道長(zhǎng)寡润。 經(jīng)常有香客問(wèn)我,道長(zhǎng)舅柜,這世上最難降的妖魔是什么梭纹? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮业踢,結(jié)果婚禮上栗柒,老公的妹妹穿的比我還像新娘。我一直安慰自己知举,他們只是感情好瞬沦,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著雇锡,像睡著了一般逛钻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上锰提,一...
    開(kāi)封第一講書(shū)人閱讀 52,457評(píng)論 1 311
  • 那天曙痘,我揣著相機(jī)與錄音芳悲,去河邊找鬼。 笑死边坤,一個(gè)胖子當(dāng)著我的面吹牛名扛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播茧痒,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼肮韧,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了旺订?” 一聲冷哼從身側(cè)響起弄企,我...
    開(kāi)封第一講書(shū)人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎区拳,沒(méi)想到半個(gè)月后拘领,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡樱调,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年约素,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片本涕。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡业汰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出菩颖,到底是詐尸還是另有隱情样漆,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布晦闰,位于F島的核電站放祟,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏呻右。R本人自食惡果不足惜跪妥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望声滥。 院中可真熱鬧眉撵,春花似錦、人聲如沸落塑。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)憾赁。三九已至污朽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間龙考,已是汗流浹背蟆肆。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工矾睦, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人炎功。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓枚冗,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親亡问。 傳聞我的和親對(duì)象是個(gè)殘疾皇子官紫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容