国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux編程基礎(chǔ):第4章Shell編程 課后習(xí)題

這篇具有很好參考價(jià)值的文章主要介紹了Linux編程基礎(chǔ):第4章Shell編程 課后習(xí)題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

《Linux編程基礎(chǔ)》黑馬程序員/編著?清華大學(xué)出版社

目錄

一、填空題

二、判斷題

三、單選題

四、簡(jiǎn)答題

1、分析以下腳本代碼:

2、寫(xiě)出shell腳本中while循環(huán)與until循環(huán)的基本格式,并簡(jiǎn)述這兩種循環(huán)結(jié)構(gòu)的區(qū)別。

五、編程題

1、編寫(xiě)shell腳本實(shí)現(xiàn)如下菜單界面:

2、編寫(xiě)shell腳本,實(shí)現(xiàn)批量添加用戶(hù)功能,要求如下:

①用戶(hù)名格式統(tǒng)一,為相同字符串加數(shù)字編號(hào),如qwe1~qwe9;

②用戶(hù)密碼與用戶(hù)名相同。

3、編寫(xiě)shell腳本,實(shí)現(xiàn)批量刪除用戶(hù)功能,其中用戶(hù)的用戶(hù)名格式統(tǒng)一(如qwe1~qwe9)。


一、填空題

1、Linux系統(tǒng)中的輸入輸出分為三類(lèi),分別為:標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤。

2、當(dāng)執(zhí)行g(shù)cc c hello.c 2 > file命令時(shí),系統(tǒng)會(huì)將執(zhí)行命令時(shí)的錯(cuò)誤信息輸出到文件file中。

解析Linux系統(tǒng)為其中的輸入輸出文件設(shè)置了默認(rèn)編號(hào):標(biāo)準(zhǔn)輸入文件的編號(hào)是0,標(biāo)準(zhǔn)輸出文件的編號(hào)是1,標(biāo)準(zhǔn)錯(cuò)誤文件的編號(hào)是2。因此本題目中的“2 > file”是將執(zhí)行命令時(shí)的錯(cuò)誤信息重定向到文件file中。

3、執(zhí)行shell腳本的方法有兩種,假設(shè)現(xiàn)有一腳本文件test.sh,則執(zhí)行該腳本的方式分別為:(chmod +x test.sh;./test.sh)和sh test.sh。

解析執(zhí)行該腳本的方法有兩種:一種是將腳本本身作為一個(gè)可執(zhí)行文件,若想執(zhí)行該腳本程序,需要確保該文件可執(zhí)行,但創(chuàng)建的文件一般默認(rèn)沒(méi)有可執(zhí)行權(quán)限,因此需要先使用chmod命令,來(lái)修改文件的權(quán)限;另一種方法是將該腳本文件作為一個(gè)參數(shù),通過(guò)Shell解釋器對(duì)其進(jìn)行解析。

4、Shell中變量沒(méi)有明確的類(lèi)型,變量值都以字符串的形式存儲(chǔ),但Shell中也可能進(jìn)行一些算術(shù)運(yùn)算。Shell中的運(yùn)算一般通過(guò)兩個(gè)命令:letexpr實(shí)現(xiàn)。

5、條件判斷是條件語(yǔ)句的核心,Shell中通常使用test命令或[命令對(duì)條件進(jìn)行判斷,這兩個(gè)命令判斷的條件可以是命令或腳本。

6、Shell腳本中常用的條件語(yǔ)句有三種,分別為:if條件語(yǔ)句、select語(yǔ)句和case語(yǔ)句。

二、判斷題

1、cat < file命令的功能是將cat命令打印的結(jié)果重定向到文件file中。 ??(×

【解析】<為輸入重定向,因此cat < file命令的功能為將file文件的內(nèi)容作為cat命令的輸入,即打印文件file中的內(nèi)容,等同于cat file。

2、Shell的原意為“殼”,它包裹在內(nèi)核之外,處于硬件與內(nèi)核之間其主要功能為接收用戶(hù)輸入的命令,找到命令所在位置,并加以執(zhí)行。 ??(×)

【解析】Shell位于用戶(hù)與內(nèi)核之間,而非硬件與內(nèi)核之間。

3、Shell最重要的功能是命令解釋器,Linux系統(tǒng)中的所有可執(zhí)行文件都可以作為Shell命令來(lái)執(zhí)行。 ??(

4、使用“&”連接符連接的命令,其前后命令的執(zhí)行遵循邏輯與關(guān)系,只有該連接符之前的命令執(zhí)行成功時(shí),后面的命令才會(huì)被執(zhí)行。 ??(×

解析Shell中的邏輯與連接符為“&&”而非“&”。

5、在Shell編程中,使用echo命令可打印字符串。若當(dāng)前腳本中定義了變量var=hello itheima,則語(yǔ)句echo $var打印的結(jié)果為hello itheima。 ??(×

解析在Shell腳本中,若由雙引號(hào)引起的字符串中有變量的引用,則會(huì)輸出變量中存儲(chǔ)的值;由單引號(hào)引起來(lái)的字符串中有變量的引用,則會(huì)原樣輸出。因此該習(xí)題中echo語(yǔ)句打印的結(jié)果應(yīng)為$var。

三、單選題

1、分析以下腳本代碼:

#!/bin/sh
var="hello itheima"
echo "$var"
echo '$var'
exit 0

從以下選項(xiàng)中選出正確的執(zhí)行結(jié)果。 ??(B

A、

hello itheima

hello itheima

B、

hello itheima

$var

C、

$var

hello itheima

D、

$var

$var

解析在Shell腳本中,若由雙引號(hào)引起的字符串中有變量的引用,則會(huì)輸出變量中存儲(chǔ)的值;由單引號(hào)引起來(lái)的字符串中有變量的引用,則會(huì)原樣輸出。因此正確選項(xiàng)為B。

2、從以下四個(gè)選項(xiàng)中,選出能成功將標(biāo)準(zhǔn)錯(cuò)誤重定向到file文件中的選項(xiàng)。 ??(D

A、gcc hello.c 2<file

B、gcc hello.c 1<file

C、gcc hello.c 2>file

D、gcc hello.c 2>>file

【解析】標(biāo)準(zhǔn)錯(cuò)誤輸出文件編號(hào)為2,;錯(cuò)誤重定向符號(hào)與輸出重定向符號(hào)相同,即都為“>”和“>>”,使用“>”將以覆蓋的方式將錯(cuò)誤信息寫(xiě)到file文件;使用“>>”將以追加的方式將錯(cuò)誤信息寫(xiě)到file文件。因此正確選項(xiàng)為D。

3、若需要在當(dāng)前終端上順序執(zhí)行命令,則應(yīng)使用下列哪個(gè)符號(hào)連接? ??(A

A、;

B、|

C、&&

D、||

解析連接命令,并使命令順序執(zhí)行的連接符為“;”。此外,“|”是管道連接符,該命令的功能是將一個(gè)命令的輸出作為另外一個(gè)命令的輸入;“&&”是邏輯與連接符,連接符兩邊的命令執(zhí)行有邏輯與關(guān)系,只有前一個(gè)命令執(zhí)行成功時(shí),后面的命令才會(huì)執(zhí)行;“||”是邏輯或連接符,只有前一個(gè)命令執(zhí)行失敗時(shí),后面的命令才會(huì)執(zhí)行。

四、簡(jiǎn)答題

1、分析以下腳本代碼:

#!/bin/bash
sum=1
for(( i=1; i <= 10; i++ ))
    do  
        sum=`expr $sum + $i`
        echo $sum
done
echo "sum1~10=$sum"

寫(xiě)出此腳本的執(zhí)行結(jié)果。

該腳本的功能為計(jì)算1~10這十個(gè)整數(shù)的和。腳本執(zhí)行結(jié)果如下:

3
6
10
15
21
28
36
45
55
sum1~10=55

2、寫(xiě)出shell腳本中while循環(huán)與until循環(huán)的基本格式,并簡(jiǎn)述這兩種循環(huán)結(jié)構(gòu)的區(qū)別。

while循環(huán)的語(yǔ)法格式為:

while [ 表達(dá)式 ]
do
	…
done

until循環(huán)的語(yǔ)法格式為:

until [ 表達(dá)式 ]
do
	…
done

while和until的區(qū)別在于:while會(huì)先進(jìn)行表達(dá)式判斷,若表達(dá)式滿(mǎn)足,才執(zhí)行循環(huán)體,直到表達(dá)式不滿(mǎn)足為止;而until則會(huì)先執(zhí)行循環(huán)體,再進(jìn)行表達(dá)式判斷,直到表達(dá)式不成立時(shí),才結(jié)束循環(huán)。until循環(huán)至少會(huì)執(zhí)行一次。

五、編程題

1、編寫(xiě)shell腳本實(shí)現(xiàn)如下菜單界面:

Menu
1) exit
2) edit file
3) date
4) calc
#?

腳本實(shí)現(xiàn)如下:

#!/bin/bash
echo "Menu"
select var in "exit" "edit file" "date" "calc"
do
    break
done
echo "your choose is $var."
exit

2、編寫(xiě)shell腳本,實(shí)現(xiàn)批量添加用戶(hù)功能,要求如下:

①用戶(hù)名格式統(tǒng)一,為相同字符串加數(shù)字編號(hào),如qwe1~qwe9;

②用戶(hù)密碼與用戶(hù)名相同。

分析題目:

由于添加的用戶(hù)名采用統(tǒng)一格式,因此可使用“user00+數(shù)字”的方式實(shí)現(xiàn),其中前綴user00由用戶(hù)手動(dòng)輸入,后綴的數(shù)字可通過(guò)循環(huán)逐次遞增;因?yàn)橛脩?hù)名和密碼相同,可在創(chuàng)建用戶(hù)后,使用代表用戶(hù)名的變量為用戶(hù)設(shè)置密碼;此外需對(duì)命令的執(zhí)行情況進(jìn)行判斷,若密碼設(shè)置失敗,應(yīng)給出提示。

腳本實(shí)現(xiàn)如下:

#!/bin/bash
#addusers
echo "-----add 9 users-----"
echo "please input a string:"
read user
for i in {1..9}; do
    username=$user$i
    if useradd $username > /dev/null; then
        echo "$username" | passwd --stdin $username
        if [ $? -eq 0 ]; then
            echo "add $username successful"
        else
            echo "$username added, change password failure "
        fi  
    else
        echo "add $username failure "
    fi  
done

執(zhí)行腳本,腳本的執(zhí)行結(jié)果如下,其中輸入的前綴為qwe:

-----add 9 users-----
please input a string:
qwe
更改用戶(hù) qwe1 的密碼 。
passwd: 所有的身份驗(yàn)證令牌已經(jīng)成功更新。
add qwe1 successful
更改用戶(hù) qwe2 的密碼 。
passwd: 所有的身份驗(yàn)證令牌已經(jīng)成功更新。
add qwe2 successful
更改用戶(hù) qwe3 的密碼 。
passwd: 所有的身份驗(yàn)證令牌已經(jīng)成功更新。
add qwe3 successful
更改用戶(hù) qwe4 的密碼 。
passwd: 所有的身份驗(yàn)證令牌已經(jīng)成功更新。
add qwe4 successful
更改用戶(hù) qwe5 的密碼 。
passwd: 所有的身份驗(yàn)證令牌已經(jīng)成功更新。
add qwe5 successful
更改用戶(hù) qwe6 的密碼 。
passwd: 所有的身份驗(yàn)證令牌已經(jīng)成功更新。
add qwe6 successful
更改用戶(hù) qwe7 的密碼 。
passwd: 所有的身份驗(yàn)證令牌已經(jīng)成功更新。
add qwe7 successful
更改用戶(hù) qwe8 的密碼 。
passwd: 所有的身份驗(yàn)證令牌已經(jīng)成功更新。
add qwe8 successful
更改用戶(hù) qwe9 的密碼 。
passwd: 所有的身份驗(yàn)證令牌已經(jīng)成功更新。
add qwe9 successful

附:shell腳本中對(duì)空格要求比較嚴(yán)格,若腳本運(yùn)行失敗,可先檢測(cè)代碼中是否有多余空格。

3、編寫(xiě)shell腳本,實(shí)現(xiàn)批量刪除用戶(hù)功能,其中用戶(hù)的用戶(hù)名格式統(tǒng)一(如qwe1~qwe9)。

分析題目:

刪除的用戶(hù)名采用統(tǒng)一格式,因此可使用“user00+數(shù)字”的方式實(shí)現(xiàn),其中前綴由用戶(hù)手動(dòng)輸入,后綴的數(shù)字可通過(guò)循環(huán)逐次遞增。

腳本實(shí)現(xiàn)如下:

#!/bin/bash
#delusers
echo "------del 9 users------"
echo "please input a string:"
read user
for i in {1..9}; do
    username=$user$i
    userdel -r $username
    if [ $? -eq 0 ]; then
        echo "del $username successful"
    else
        echo "del $username failure"
    fi  
done
exit

腳本執(zhí)行結(jié)果如下:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-467871.html

------del 9 users------
please input a string:
qwe
del qwe1 successful
del qwe2 successful
del qwe3 successful
del qwe4 successful
del qwe5 successful
del qwe6 successful
del qwe7 successful
del qwe8 successful
del qwe9 successful

到了這里,關(guān)于Linux編程基礎(chǔ):第4章Shell編程 課后習(xí)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Linux:課后習(xí)題及其答案

    Linux:課后習(xí)題及其答案

    Linux服務(wù)器、嵌入式Linux系統(tǒng)、軟件開(kāi)發(fā)平臺(tái)、桌面應(yīng)用 開(kāi)放性、多用戶(hù)、多任務(wù)、良好的用戶(hù)界面、設(shè)備獨(dú)立性、豐富的網(wǎng)絡(luò)功能、可靠的系統(tǒng)安全、良好的可移植性 內(nèi)核、Shell、文件系統(tǒng)、應(yīng)用程序 內(nèi)核是操作系統(tǒng)的核心,具有很多最基本的功能,如虛擬內(nèi)存、多任務(wù)、

    2024年02月09日
    瀏覽(18)
  • Linux實(shí)驗(yàn)4 shell腳本編程基礎(chǔ)

    Linux實(shí)驗(yàn)4 shell腳本編程基礎(chǔ)

    1.假設(shè)在/tmp下有以當(dāng)前用戶(hù)的帳號(hào)命名的目錄,請(qǐng)?jiān)诿钚兄信R時(shí)修改環(huán)境變量PATH的值,要求該目錄的路徑附加到該變量的最后。 2.請(qǐng)?jiān)诿钚兄信R時(shí)設(shè)置命令輸入提示行格式為:“當(dāng)前系統(tǒng)時(shí)間-用戶(hù)#”。 3.在命令行定義一個(gè)字符串變量str,并且賦值為“test for shell”,然

    2024年04月17日
    瀏覽(22)
  • 《python語(yǔ)言程序設(shè)計(jì)基礎(chǔ)》(第二版)第六章課后習(xí)題參考答案

    第六章 組合數(shù)據(jù)類(lèi)型 6.1 隨機(jī)密碼生成 6.2 重復(fù)元素判定 6.3 重復(fù)元素判定續(xù) 6.4 文本字符分析 6.5 生日悖論分析 6.6 《紅樓夢(mèng)》人物統(tǒng)計(jì) 注:上述代碼僅供參考,若有問(wèn)題可在評(píng)論區(qū)留言! 《紅樓夢(mèng)》及人物名單TXT (百度云鏈接失效可在評(píng)論區(qū)留言) 鏈接:https://pan.baidu.c

    2024年02月05日
    瀏覽(24)
  • 《python語(yǔ)言程序設(shè)計(jì)基礎(chǔ)》(第二版)第五章課后習(xí)題參考答案

    第五章 函數(shù)和代碼的復(fù)用 5.1 改造練習(xí)題3.5,輸出更大的田字格 5.2 實(shí)現(xiàn)isOdd函數(shù) 5.3 實(shí)現(xiàn)isNum函數(shù) 5.4 實(shí)現(xiàn)multi函數(shù) 5.5 實(shí)現(xiàn)isPrime函數(shù) 5.6 輸出10種生日日期格式 代碼一: 代碼二: 5.7 漢諾塔 注:上述代碼僅供參考,若有問(wèn)題可在評(píng)論區(qū)留言!

    2024年02月01日
    瀏覽(23)
  • 《python語(yǔ)言程序設(shè)計(jì)基礎(chǔ)》(第二版)第二章課后習(xí)題參考答案

    第二章 Python程序?qū)嵗馕?2.1 溫度轉(zhuǎn)換 2.2 匯率兌換 優(yōu)化: 優(yōu)化的主要改動(dòng): 將貨幣符號(hào)和金額分離出來(lái),使代碼更加清晰易讀。 將條件判斷改為根據(jù)貨幣符號(hào)進(jìn)行判斷,避免重復(fù)判斷。 2.3 繪制彩色蟒蛇 2.4 等邊三角形的繪制 代碼一: 代碼二: 2.5 疊加等邊三角形的繪制

    2024年03月19日
    瀏覽(36)
  • 【Linux】shell編程基礎(chǔ)(超詳細(xì),入門(mén)看這一篇就夠了)

    【Linux】shell編程基礎(chǔ)(超詳細(xì),入門(mén)看這一篇就夠了)

    ????【Liunx學(xué)習(xí)記錄篇】???? 篇一:【Linux】VMware安裝unbuntu18.04虛擬機(jī)-超詳細(xì)步驟(附鏡像文件) 篇二:【Linux】ubuntu18.04系統(tǒng)基礎(chǔ)配置及操作 篇三:【Linux】用戶(hù)與組的操作詳細(xì)介紹 篇四:【Linux】管理Linux文件權(quán)限屬性介紹 篇五:【Linux】使用數(shù)字表示法和文件表示法修

    2024年02月04日
    瀏覽(41)
  • 微信小程序開(kāi)發(fā)教程:項(xiàng)目二微信小程序開(kāi)發(fā)基礎(chǔ) 課后習(xí)題

    微信小程序開(kāi)發(fā)教程:項(xiàng)目二微信小程序開(kāi)發(fā)基礎(chǔ) 課后習(xí)題

    《微信小程序開(kāi)發(fā)教程》主編/黃壽孟 易芳 陶延濤 湖南大學(xué)出版社 目錄 一、單選題 二、多選題 三、判斷題 四、填空題 五、簡(jiǎn)答題 1.請(qǐng)簡(jiǎn)單描述頁(yè)面樣式的單位rpx與px的關(guān)系。 2.簡(jiǎn)單地介紹開(kāi)發(fā)常用頁(yè)面組件。 六、編程題 1.請(qǐng)編寫(xiě)一個(gè)商品列表頁(yè)面,展示商品名稱(chēng)和價(jià)格。

    2024年02月09日
    瀏覽(16)
  • JAVA面向?qū)ο缶毩?xí)題,課后編程題。題目為:公司員工分為5類(lèi),每類(lèi)員工都有相應(yīng)的封裝類(lèi)。

    某公司的員工分為5類(lèi),每類(lèi)員工都有相應(yīng)的封裝類(lèi),這5個(gè)類(lèi)的信息如下 (1)Employee:這是所有員工的父類(lèi)。 ①屬性:?jiǎn)T工的姓名、員工的生日月份。 )方法:getSalary(int?month)根據(jù)參數(shù)月份確定工資。如果該月員工過(guò)生日,則公司會(huì)額外發(fā)放100元。 (2)SalariedEmployee:Employee?

    2024年02月05日
    瀏覽(27)
  • 【Linux命令行與Shell腳本編程】第十八章 文本處理與編輯器基礎(chǔ)

    【Linux命令行與Shell腳本編程】第十八章 文本處理與編輯器基礎(chǔ)

    文本處理 學(xué)習(xí)sed編輯器 sed編輯器基礎(chǔ)命令 gawk編輯器入門(mén) sed編輯器基礎(chǔ) shell腳本可以將文本文件中各種數(shù)據(jù)的日常處理任務(wù)自動(dòng)化Linux中的sed和gawk兩款工具能夠極大地簡(jiǎn)化數(shù)據(jù)處理任務(wù)。 想要即時(shí)處理文本文件中的文本,有一個(gè)可以自動(dòng)格式化、插入、修改或刪除文本元素

    2024年02月13日
    瀏覽(17)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包