Shell編程 基礎題目

例題:

shell1.sh 顯示日期和時間。


#!/bin/bash

echo“current time is `date`” //date要加反引號


shell2.sh顯示文件名,並顯示位置參數(執行時帶一個參數)。$0是一個特殊的變量,它的內容是當前這個shell程序的文件名;②$1是一個位置參數位置參數之間用空格分隔,shell取第一個位置參數替換程序文件中的$1,第二個替換$2,依次類推。)


#!/bin/bash

echo“the program name is $0” //$0是一個特殊的變數

echo“the first para is $1” //$1是一個位置參數

echo“the program exit” //執行時帶一個參數如./shell2.sh abcd


shell3.sh 判斷並顯示位置參數


#!/bin/bash

if[ -d “$1”];then

echo“$1 is directory ,existed”

else

echo“$1 does not exist ,now create it”

mkdir$1

echo“$1 is created”

fi //執行時帶一個參數


shell4.sh 問候用戶


#!/bin/bash

user=`whoami`

case $user in

teacher)

echo“hello teacher”;;

root)

echo“hello root”;;

*)

echo“hello $user,welcome”

esac


  1. 1+2+3+...+100的和是?


#!/bin/bash

SUM=0

I=0

while[ $I -le 100 ]

do

SUM=$((SUM+I))

I=$((I+1))

done

echo"1+2+3+...+100的和是:$SUM"


2(基訓十一)在根目錄下有四個文件m1.txtm2.txtm3.txtm4.txt,用Shell編程,實現自動創建m1,m2,m3,m4四個目錄,並將m1.txt,m2.txt,m3.txt,m4.txt四個文件分別拷貝到各自相應的目錄下。


#!/bin/bash

cd/

touchm1.txt m2.txt m3.txt m4.txt

I=1

while[ $I -le 4 ]

do

mkdirm$I

cpm$I.txt m$I

I=$((I+1))

done


3(基訓十二) 編寫一個名爲myfirstshell.sh的腳本它包括以下內容。a)包含一段註釋列出您的姓名、腳本的名稱和編寫這個腳本的目的。

b)問候用戶。

c)顯示日期和時間。

d)顯示這個月的日曆。

e)顯示您的機器名。

f)顯示當前這個操作系統的名稱和版本。

g)顯示父目錄中的所有文件的列表。

h)顯示root正在運行的所有進程。

i)顯示變量TERMPATHHOME的值。

j)顯示磁盤使用情況。

k)id命令打印出您的組ID

m)跟用戶說Goodbye”


#!/bin/bash

#09嵌入5賈德進myfirstshell.shshell的簡單編程

user=`whoami`

case$user in

root)

echo"hello root";;

teacher)

echo"hello teacher";;

*)

echo"hello $user,welcome"

esac

echo"日期和時間:`date`"

echo"本月的日曆:`cal`"

echo"本機的機器名:`uname-n`"

echo"當前這個操作系統的名稱和版本:`uname-s;uname -r`"

echo"父目錄中的所有文件的列表:`ls../`"

echo"root正在運行的所有進程:`ps -u root`"

echo"變數TERM的值:$TERM"

echo"變數PATH的值:$PATH"

echo"變數HOME的值:$HOME"

echo"磁盤的使用情況:`df`"

echo"id命令打印出你的組ID:`id-g`"

echo"Good bye!"


4(基訓十三) 設計一個Shell程序,在/userdata目錄下建立50個目錄,即user1user50,並設置每個目錄的權限爲rwxr-xr—


#!/bin/bash

cd/userdata

I=1

while[ $I -le 50 ]

do

mkdir-p userdata/user$I

chmodo-x user$I

I=$((I+1))

done


5(基訓十四) 編寫shell程序,實現自動刪除50個用戶賬號的功能。賬號名爲stud1stud50


#!/bin/bash

cd/userdata

I=1

while[ $I -le 50 ]

do

mkdir-p userdata/user$I

chmodo-x user$I

I=$((I+1))

done


6(基訓十四)設計一個shell程序備份並壓縮/etc目錄的所有內容存放在/root/bak目錄裏且文件名爲如下形式yymmdd_etcyy爲年mm爲月dd爲日。


#!/bin/bash

DIRNAME=`ls|root|grep bak `

if[-z $DIRNAME ]; then

mkdir/root/bak

cd/root/bak

fi

YY=`date+ %y`

MM=`date+ %m`

DD=`date+ %d`tar czvf ${YY}${MM}${DD}_etc.gz /etc

echo"etc bak finshied"


7(基訓十四) 某系統管理員需每天做一定的重複工作,請按照下列要求,編制一個解決方案:

1)在下午4:50刪除/abc目錄下的全部子目錄和全部文件;

2)下午5:50/data目錄下的所有目錄和文件歸檔並壓縮爲文件:backup.tar.gz

3)在下午5:55IDE接口的第二個邏輯分區卸載。


//採用vi pram.cron


#(1)在下午4:50刪除/abc目錄下的全部子目錄和全部文件;

5016 *** rm -rf /abc/*

#(2)下午5:50/data目錄下的所有目錄和文件歸檔並壓縮爲文件:backup.tar.gz;

5017 *** tar czvf back.tar.gz /data

#(3)在下午5:55IDE接口的第二個邏輯分區卸載.

5517 *** umount /dev/hda6


//執行:crontabpram.cron


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章