Linux期末複習程式設計題

2021-09-24 18:00:49 字數 4738 閱讀 9484

如果是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...