日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux期末复习编程题

發(fā)布時(shí)間:2025/3/15 linux 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux期末复习编程题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Linux期末復(fù)習(xí)編程題

      • 0.先說說編程需要注意的點(diǎn)吧
      • 1.if條件語句
      • 2.乘法口訣表
      • 3.自動(dòng)刪除50個(gè)賬號(hào)
      • 4.菜單設(shè)計(jì)

0.先說說編程需要注意的點(diǎn)吧

  • 如果是if 條件時(shí),需要注意每個(gè)字符都要用空格隔開,比如if [ $a = $b ] # 注意需要空格隔開
  • 如果是賦值語句,就不需要用空格隔開,比如result=$[a+b] # 注意等號(hào)兩邊不能有空格
  • 1.if條件語句

    if condition thencommand1 command2...commandN elsecommand fi

    實(shí)例

    a=10 b=20 if [ $a == $b ] thenecho "a 等于 b" elif [ $a -gt $b ] thenecho "a 大于 b" elif [ $a -lt $b ] thenecho "a 小于 b" elseecho "沒有符合的條件" fi

    2.乘法口訣表

    #!/bin/bash #這行必須加 for((i=1;i<=9;i++)) #表示i從1到9 dofor((j=1;j<=i;j++)) #表示j從1到idoecho -n "$j*$i=$[$i*$j] " #注意后面兩個(gè)空格還有一個(gè)-n選項(xiàng)doneecho "" done

    3.自動(dòng)刪除50個(gè)賬號(hào)

    #!/bin/bash i=1 # i從1開始 while [ $i -le 50 ] # $i小于等于50的話繼續(xù)執(zhí)行循環(huán) doif [ -n "`cat /etc/passwd | grep user$i`" ] # 這句就是現(xiàn)在/etc/passwd中查找# 有沒有存在user$i,這里的$i是1到# 50,例如passwd里面有user20,則當(dāng)# $i為20的時(shí)候 # cat /etc/passwd | grep user20# 會(huì)找到對(duì)應(yīng)的一行內(nèi)容,這個(gè)時(shí)候字符# 串的長度不為0,所以-n選項(xiàng)會(huì)判斷為true# 則執(zhí)行then語句thensudo userdel -r user${i} # 接著以u(píng)ser20為例子,則刪除user20這個(gè)用戶# 當(dāng)前用戶若是root則不需要寫sudo這個(gè)命令echo "success delete user$i" # 輸出"成功刪除user20"else echo "not found user$i" # 當(dāng)我們沒查找到對(duì)應(yīng)的user時(shí)# 輸出"不存在user+編號(hào)"fii=$[$i+1] # i需要進(jìn)行+1操作,注意是"i="而不是"$i=" done

    因?yàn)樯厦娌惶烙^,于是看下面:

    #!/bin/bash i=1 while [ $i -le 50 ] doif [ -n "`cat /etc/passwd | grep user$i`" ]thensudo userdel -r user${i}echo "success delete user$i"elseecho "not found user$i"fii=$[$i+1] done

    4.菜單設(shè)計(jì)

    這題也需要根據(jù)題目需求來寫,只能給定大概的模板!具體看題意如何說明。

    #!/bin/bash echo "Welcome to my soft system!" # 這句話沒什么卵用,就是寫著玩 while true # 讓程序進(jìn)入死循環(huán) doecho "1. option1" # 這4句就是菜單echo "2. option2"echo "3. option3"echo "0. exit"read option # 讀取鍵盤的輸入并存入到option變量中# 因?yàn)槲覀冞@里數(shù)字都是1個(gè)字符,所以可以使用-n1選項(xiàng)if [ $option -eq 0 ] # 如果變量option的值是0,則使用break語句推出循環(huán)thenbreakficase $option in # case條件分支語句,賊好用,這里是用來判斷option的值1) # 如果option值為1echo "exec option1" # 執(zhí)行"操作1",這里的操作根據(jù)題目要求定義;; # 類似于c語言中case的break語句,加就是了,下面幾句類似2)echo "exec option2";;3)echo "exec option3";;*) # 這一句類似于c語言的case中的default,默認(rèn)選項(xiàng)echo "unknow option!" # 由于沒有準(zhǔn)確定義默認(rèn)操作是什么,所以可以隨便輸出點(diǎn)什么東西;;esac# clear # 這個(gè)是清屏用的,可以每次都清一次屏幕,不然很亂 done

    上面這是模板,現(xiàn)在我們來一個(gè)實(shí)例:

  • 代表cd命令
  • 代表pwd命令
  • 代表touch命令
  • 代表rm命令
  • 代表ls命令
  • #!/bin/bash curDir=`pwd` # 獲取當(dāng)前路徑 while true # 死循環(huán) 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,則退出thenbreakficase $option in # case分支語句1)read -e -p "input dir:" dir # 提示需要輸入一個(gè)目錄名cd $dir # 嘗試進(jìn)入目錄if [ $? -eq 0 ] # $?代表獲取shell執(zhí)行后的代碼,0是成功,1是失敗then # 成功則需要判斷一系列操作if [ ${dir:0:1} == "/" ] thencurDir=$direlsecurDir=${curDir}"/"${dir}fiecho "success in $dir"else # 否則失敗echo "not found $dir"fi;;2)echo $curDir # 操作2是輸出當(dāng)前目錄;;3)read -p "input filename:" filename # 操作3創(chuàng)建文件,需要一個(gè)文件名sudo touch ${curDir}"/"${filename} # 創(chuàng)建文件操作if [ $? -eq 0 ] # 如果成功,則$?為0thenecho "success $filename" # 輸出成功elseecho "error $filename" # 輸出失敗fi;;4)read -e -p "input remove filename:" filename # 操作4是刪除文件,需要輸入一個(gè)文件名# 這里使用-e選項(xiàng)代表可以使用tab鍵補(bǔ)全sudo rm -r ${curDir}"/"${filename} # 刪除文件操作if [ $? -eq 0 ] # 成功,$?為0thenecho "success $filename"elseecho "error $filename"fi;;5)ls $curDir # 操作5輸出當(dāng)前目錄的路徑;;*)echo "error code";;esacdone

    總結(jié)

    以上是生活随笔為你收集整理的Linux期末复习编程题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。