如果是if 條件時,需要注意每個字元都要用空格隔開,比如if [ $a = $b ] # 注意需要空格隔開
如果是賦值語句,就不需要用空格隔開,比如result=$[a+b] # 注意等號兩邊不能有空格
if condition
then
command1
command2
...commandn
else
command
fi
例項
a=10
b=20if[
$a==$b]
then
echo
"a 等於 b"
elif
[$a -gt $b
]then
echo
"a 大於 b"
elif
[$a -lt $b
]then
echo
"a 小於 b"
else
echo
"沒有符合的條件"
fi
#!/bin/bash
#這行必須加
for((i=
1;i<=
9;i++
)) #表示i從1到9
dofor
((j=
1;j<=i;j++
)) #表示j從1到i
doecho -n "$j*
$i=$[$i*
$j] "
#注意後面兩個空格還有乙個-n選項
done
echo
""done
#!/bin/bash
i=1 # i從1開始
while
[$i -le 50 ]
# $i小於等於50的話繼續執行迴圈
doif
[ -n "`
cat /etc/passwd |
grep user$i`"]
# 這句就是現在/etc/passwd中查詢
# 有沒有存在user$i,這裡的$i是1到
# 50,例如passwd裡面有user20,則當
# $i為20的時候
# cat /etc/passwd | grep user20
# 會找到對應的一行內容,這個時候字元
# 串的長度不為0,所以-n選項會判斷為true
# 則執行then語句
then
sudo
userdel -r user$
# 接著以user20為例子,則刪除user20這個使用者
# 當前使用者若是root則不需要寫sudo這個命令
echo
"success delete user$i"
# 輸出"成功刪除user20"
else
echo
"not found user$i"
# 當我們沒查詢到對應的user時
# 輸出"不存在user+編號"
fi i=$[
$i+1]
# i需要進行+1操作,注意是"i="而不是"$i="
done
因為上面不太美觀,於是看下面:
#!/bin/bash
i=1while
[$i -le 50 ]
doif
[ -n "`
cat /etc/passwd |
grep user$i`"]
then
sudo
userdel -r user$
echo
"success delete user$i"
else
echo
"not found user$i"
fi i=$[
$i+1]
done
這題也需要根據題目需求來寫,只能給定大概的模板!具體看題意如何說明。
#!/bin/bash
echo
"welcome to my soft system!"
# 這句話沒什麼卵用,就是寫著玩
while
true
# 讓程式進入死迴圈
doecho
"1. option1"
# 這4句就是選單
echo
"2. option2"
echo
"3. option3"
echo
"0. exit"
read option # 讀取鍵盤的輸入並存入到option變數中
# 因為我們這裡數字都是1個字元,所以可以使用-n1選項if[
$option -eq 0 ]
# 如果變數option的值是0,則使用break語句推出迴圈
then
break
ficase
$option
in# case條件分支語句,賊好用,這裡是用來判斷option的值
1)# 如果option值為1
echo
"exec option1"
# 執行"操作1",這裡的操作根據題目要求定義;;
# 類似於c語言中case的break語句,加就是了,下面幾句類似
2)echo
"exec option2";;
3)echo
"exec option3";;
*)# 這一句類似於c語言的case中的default,預設選項
echo
"unknow option!"
# 由於沒有準確定義預設操作是什麼,所以可以隨便輸出點什麼東西;;
esac
# clear # 這個是清屏用的,可以每次都清一次螢幕,不然很亂
done
上面這是模板,現在我們來乙個例項:
代表cd命令
代表pwd命令
代表touch命令
代表rm命令
代表ls命令
#!/bin/bash
curdir=
`pwd
` # 獲取當前路徑
while
true
# 死迴圈
doecho
"1. cd command"
# 命令說明
echo
"2. pwd command"
echo
"3. touch command"
echo
"4. rm command"
echo
"5. ls command"
echo
"0. exit"
read option # 鍵入操作if[
$option -eq 0 ]
# 如果操作值為0,則退出
then
break
ficase
$option
in# case分支語句
1)read -e -p "input dir:"
dir# 提示需要輸入乙個目錄名
cd$dir
# 嘗試進入目錄if[
$? -eq 0 ]
# $?代表獲取shell執行後的**,0是成功,1是失敗
then
# 成功則需要判斷一系列操作if[
$=="/"]
then
curdir=
$dir
else
curdir=
$"/"$fi
echo
"success in $dir"
else
# 否則失敗
echo
"not found $dir"fi;
; 2)
echo
$curdir
# 操作2是輸出當前目錄;;
3)read -p "input filename:" filename # 操作3建立檔案,需要乙個檔名
sudo
touch
$"/"
$# 建立檔案操作if[
$? -eq 0 ]
# 如果成功,則$?為0
then
echo
"success $filename"
# 輸出成功
else
echo
"error $filename"
# 輸出失敗fi;
; 4)
read -e -p "input remove filename:" filename # 操作4是刪除檔案,需要輸入乙個檔名
# 這裡使用-e選項代表可以使用tab鍵補全
sudo
rm -r $
"/"$
# 刪除檔案操作if[
$? -eq 0 ]
# 成功,$?為0
then
echo
"success $filename"
else
echo
"error $filename"fi;
; 5)
ls$curdir
# 操作5輸出當前目錄的路徑;;
*)echo
"error code";;
esac
done
微機原理期末彙編部分程式設計題複習
1.設資料段array單元開始有50個有符號數的位元組數,要求統計其中負數的個數,並存入到資料段中的result變數中。寫出實現該功能的匯程式設計序 data segment array db 1,2,3,4,1 result db 0 統計負數的個數 data ends code segment ...
c語言期末程式設計題
1 設n 是乙個四位數,它的 9倍恰好是其反序數 例如 123的反序數是 321 求 n的值。include int main system pause return 0 2.列印出所有的 水仙花數 所謂 水仙花數 是指乙個 3位數,其各位數字立方和等於該數本身。例如 153是一水仙花數,因為 15...
期末複習 雜
圖 g v n,e m 無向完全圖 m n n 1 2 有向完全圖 m n n 1 無向圖g有尤拉迴路,當且僅當g是連通圖且無奇度頂點 所以選c 無向圖g有尤拉通路,但無尤拉迴路,當且僅當g是連通圖且恰好有兩個奇度頂點,這兩個奇度頂點是尤拉通路的端點 如a,d就是尤拉通路,卻不是尤拉迴路 樹設g v...