求一個完整代碼
本實驗包含兩個任務,內容廣泛涉及了 SHELL 程式的設計方法和技術。 具體要求如下:
(1)創建以下選單程式:
DATE: **/**/2021
USER: ****
A: 檔案統計
B: 檔案字符轉換 C: 命令型別查詢 Q: 退出系統
HOST: ******** ——————————————————————————————— A:統計/dev 目錄下目錄檔案和符號鏈接檔案的數目;顯示當前系統中所
有環境變數。
B:將 file1、file2 兩檔案(從課堂派下載后復制到家目錄)中的小寫字符轉
換為大寫,并將轉換后的內容合并寫入以你學號后四位命名的新檔案 中,顯示新檔案的內容。顯示完成后將 file1、file2 兩檔案截斷為大小 為 0 的空檔案。
C:輸入某個 SHELL 命令,測驗其是否為系統內置命令。是內置命令的話 2
使用 help 命令給出其幫助資訊,不是內置命令的話使用 which 命令給 出其檔案路徑。
(2)在 Linux 環境下運行下列程式,結合輸出結果分析、理解程式。回答后面 的問題。
例程 1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
set12345678910abcdefgh shift 2
for index
do
If [ $index -le 6 ] then
echo "continue"
continue fi
echo $index
if [ $index -ge 10 ] then
echo "break"
break fi
done
Q1:簡要說明第1行 set 和第2行 shift 兩個命令的功能;
Q2:第3行 for 回圈中為何沒有 in 子句? Q3:修改第5行以后的代碼,使得輸出結果僅包含 3 4 5 6 7 這 5 個數字。
3
例程 2:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
oldifs="$IFS" IFS=":"
while read line do
count=0
for item in $line do
[ $count -eq 0 ] && user=$item [ $count -eq 5 ] && home=$item [ $count -eq 6 ] && dirsh=$item let count++
done
echo The $user, Home: $home; done<passwd.txt
IFS=$oldifs
Shell: $dirsh
Q1:第2行環境變數 IFS 的作用是什么?
Q2:第 11 行 count 變數增 1 后,哪個變數(line or item)的值會隨之改變? Q3:理解代碼第8--10行的功能,符號”&&”在此的作用是什么? Q4:修改代碼,將第9行的 5 改為 2,洗掉第10行,第 13 行改為”echo The
$user, $home”后程式的輸出結果又是什么?
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/283384.html
標籤:專題技術討論區
上一篇:畢設ROS-GAZEBO仿真