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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux实验三:Shell编程

發布時間:2023/12/13 linux 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux实验三:Shell编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、實驗目的
  • 二、實驗要求
  • 三、實驗內容
    • 1、通配符的使用
    • 2、重定向
    • 3、管道
    • 4、shell變量
    • 5、建立下面的腳本,運行并分析輸出結果,并給出代碼注釋。
    • 6、編寫腳本


一、實驗目的

1.為文件擴展名使用通配符

2.標準輸入、標準輸出和標準錯誤的重定向

3.使用管道將一個進程的輸出作為輸入提供給另一個進程。

4.執行命令分組和行繼續

5.編寫shell 腳本。


二、實驗要求

1、管道(pipe-line)的使用
執行格式: command1|command2
功能:將command1的執行結果送到command2 作為輸入

2、標準輸入控制
執行格式: command-line<file 將file作為command-line的輸入

3、標準輸出控制
執行格式一: command>filename
功能:將command的執行結果送至指定的filename中
執行格式二: command>!filename
功能:同上,若filename文件已存在,則強迫重寫
執行格式三:command>>filename
功能:將command 的執行結果,附加(append)到filename

4、shell腳本的調試方法:
(1)輸入重定向到shell腳本
格式:$ bash < 腳本名
(2)以腳本名作為bash參數
格式:$ bash 腳本名 [參數]
(3)在提示符下直接執行
方法:先利用chmod命令將腳本文件設置為可執行權限;然后,將該腳本所在的目錄添加到命令搜索路徑中
(4)將shell腳本的權限設置為可執行,然后在提示符下直接執行
方法:
先利用chmod命令將腳本文件設置為可執行權限


三、實驗內容

1、通配符的使用

(1)進入/etc目錄并且將此處所有文件以列表顯示

$ cd /etc
$ ls(或者$ echo *)

(2)要求用帶有通配符的ls命令來顯示文件名,實現:
-以conf結束

ls *conf

-以d 或D開始

ls [dD]*

-在文件名的第五個位置包括一個o

ls -d ????o*

-包含單詞tab

ls -d *tab*

-以數字結尾

ls -d *[0~9]

-不以數字結尾

ls -d *[!0~9]

(3)如果你執行命令ls -d ?[!y]*[e-f]將會發生什么情況?能與之匹配的最短文件名是什么?執行這些命令來驗證你的答案。

第一個位置匹配任意一個字符,第二個位置字符不是y,第二個位置之后到最后一個位置之間任意字符串,最后一個位置字符是e或者f。


2、重定向

(1)使用cat命令和指令來創建一個包含幾行文本名為junk的文件。

(2)使用重定向junk文件中追加幾行文本。然后查看junk文件的內容并且檢查你剛剛所創建的文本是否都存在。


3、管道

(1)統計你當前目錄所有文件的數目。使用管道,而不是手動地統計所有文件

(2)ls > tempfile ; wc -l tempfile是否和你剛剛使用的管道功能相同?為什么或者為什么不?

不同,管道功能不需要新的文件,本題的操作創造了新的文件tempfile。

(3)將多個用戶文件聯合為一個大文件。


4、shell變量

(1)顯示由你當前進程環境所定義的所有變量。并且顯示出當前輸出的所有變量。

$ set

(2)創建一個變量x并初始化值為10。檢查這個變量的值。再次,顯示當前進程環境的所有變量。

(3)創建一個subshell.查看變量x在subshell下的值是什么?

(4)將x設置為500并返回到父進程。當前x的值是什么?為什么?

x=10的值保存在父進程中,x=500的值保存在了子進程中,互不繼承。

(5)確保子進程繼承了x。如何實現?


5、建立下面的腳本,運行并分析輸出結果,并給出代碼注釋。

(1)ex1

#!/bin/bash //所使用shell的絕對路徑名,表示由bash腳本編寫,從而應調用相應的解釋程序予以執行 #shell special character //“#”開頭正文行表注釋 echo "current directory is `pwd`" //顯示current directory is 當前目錄的絕對路徑 echo "current directory is 'pwd'" //顯示current directory is 'pwd' echo "home directory is $HOME" //顯示home directory is 當前用戶 echo "file*.?" //顯示file*.? today=`date` //將命令date賦給變量today echo Today is :$today //顯示Today is :此刻的日期 ls ex* //顯示當前目錄中文件名是以ex打頭的文件

(2)ex2

#!/bin/bash #bash script programming if test $# == 0 //參數個數為0 thenls -l|grep '^d' //顯示當前目錄中的所有文件夾信息 elsefor idols -l $i|grep '^d' //顯示各個參數目錄中的所有文件夾信息done fi

(3)ex3

case $1 in //選擇 -b或者-s如果什么都不選就進入*) -b) count=`grep ^b $2 | wc -l` echo "The number of lines in $2 that start with b is $count.";; //顯示The number of lines in 給出的文件 that start with b is 第幾行 -s) count=`grep ^s $2 | wc -l` echo "The number of lines in $2 that start with s is $count.";; //顯示The number of lines in 給出的文件 that start with s is 第幾行 *) echo "That option is not recognized.";; //顯示That option is not recognized. esac //關閉case


6、編寫腳本

(1)編寫shell 腳本,計算1-100 的和;

(2)編寫shell 腳本,要求輸入一個數字,然后計算出從1 到輸入數字的和,要求,如果輸入的數字小于1,則重新輸入,直到輸入正確的數字為止;

(3)編寫shell 腳本,把/home目錄下的所有目錄拷貝到/tmp目錄下;

總結

以上是生活随笔為你收集整理的Linux实验三:Shell编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。