linux下shell编程
【shell】:
#! /bin/bash ? ? ? ? //shell腳本第一行以#!開(kāi)頭,指定腳本運(yùn)行環(huán)境
#Display a line ? ? //以#開(kāi)頭的行是注釋
echo "hello world!" ?//echo命令把其參數(shù)傳遞給標(biāo)準(zhǔn)輸出,它在最后會(huì)自動(dòng)加上一個(gè)換行符,每個(gè)代碼段完后,后面沒(méi)有分號(hào)
變量和運(yùn)算符:
#! /bin/bash
log="monday" ? ?//shell中使用變量不需要事先聲明,=兩邊不能有空格(賦值)
echo $log ? ? ? //shell碰到帶有$的變量時(shí)會(huì)自動(dòng)將其替換為變量的值
想輸出$字符時(shí),就要用到\$轉(zhuǎn)義符號(hào)
shell提供了花括號(hào){}來(lái)限定一個(gè)變量的開(kāi)始和結(jié)束(緊跟變量輸出字母后綴時(shí))
(shell):
#! /bin/bash
word="big"
echo "\$word is ${word}er""
bash中的引號(hào):
雙引號(hào):阻止shell對(duì)大多數(shù)特殊字符(例如#)進(jìn)行解釋。但$ ` "仍保持其特殊的含義
單引號(hào):阻止shell對(duì)所有字符進(jìn)行解釋
倒引號(hào):當(dāng)用倒引號(hào)括起一個(gè)shell命令時(shí),這個(gè)命令將會(huì)被執(zhí)行,執(zhí)行后的輸出結(jié)果將作為這個(gè)表達(dá)式的值。倒引號(hào)中的特殊字符一般都被解釋。
(shell):
#! /bin/bash
log=Saturday
echo "Today is $log" ? ?//雙引號(hào)會(huì)對(duì)其中的$字符進(jìn)行解釋
echo 'Today is $log' ? ?//單引號(hào)不會(huì)對(duì)特殊字符進(jìn)行解釋
echo "Today is 'date'" ?//倒引號(hào)會(huì)運(yùn)行其中的命令,并把命令輸出作為最終結(jié)果
腳本執(zhí)行命令和控制語(yǔ)句:
if語(yǔ)句(shell):
#!/bin/bash
echo "Enter password:"
read password ? ? ? ? ? //讀密碼,此行不能掉
if [ "$password" = "mypassword" ] //注意空格
then
? ?echo "welcome!!"
fi ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //fi為if的結(jié)束標(biāo)志
case語(yǔ)句:case用于在一系列模式中匹配某個(gè)變量的值
條件測(cè)試:
if判斷的依據(jù):if本身并不執(zhí)行任何判斷。它實(shí)際上接受一個(gè)程序名作為參數(shù),然后執(zhí)行這個(gè)程序,然后判斷程序的返回值。其中test和[]可以對(duì)表達(dá)式進(jìn)行測(cè)試。
test和[]可以對(duì)三類(lèi)進(jìn)行測(cè)試:字符串比較,文件測(cè)試,數(shù)字比較.
循環(huán)語(yǔ)句:
while(shell):
#! /bin/bash/
sum=0
number=1
while test $number -le 100 ? ? ? ?//-le是小于等于,test檢測(cè)條件是否成立
do
? ? sum=$[ $num + $number ]
? ? let number=$number+1
done ? ? ? ? ? ? ? ? ? ? ? ? ? //結(jié)束符
echo "The summary is $sum"
until:直到until后面的條件為真才終止循環(huán),while是后面的條件為真才執(zhí)行循環(huán)。
(shell):
#! /bin/bash
sum=0
munber=1
until ! test $number -le 100
do
? ? ?sum=$[ $sum + $number ]
? ? ?let number=$number+1
done ? ? ? ? ? ? ? ? ? ? ? ? ?//結(jié)束符
echo "the summary is $sum"
for(shell): ??
for i in 1 2 3 4 5 6 7 8 9//或for i in `seq`, ``用于執(zhí)行命令
do
? ? echo $i ?//輸出每個(gè)變量
done ? ? ? ? ? ? ? ? ? ? ? ? ?//結(jié)束符
(shell):
#! /bin/bash
count=0
for file in `ls`
do
? ? if ! [ -d $file ] ? ? ? ?//-d用于判斷一個(gè)文件是否是目錄
? ? then
? ? ? ?let count=$count+1
? ? fi
done
echo "There are $count files"
?
總結(jié)
以上是生活随笔為你收集整理的linux下shell编程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。