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


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