上机复习题
Shell命令上机操作题
1. 在当前目录下创建子目录dir1和dir2。
mkdir dir1
mkdir dir2
2.以短格式查看目录/usr中的文件清单,把该信息重定向到文件my1中。
ls /usr > my1
3. 复制my1文件到两个名为t1.txt和t2.txt的文件中。
cp my1 t1.txt
cp my1 t2.txt
4. 把t2.txt文件的存取属性设置为对所有用户不可读,不可写和不可执行。
chmod a-rwx t2.txt
5.在当前目录下建立t2.txt文件的符号链接文件ts。
ln –s t2.txt ts
6.在当前目录下创建空文件x1和x2,用长格式显示当前目录信息,并把该信息附加重定向到文件my1中。
touch x1
touch x2
ls –l >>my1
7. 在当前目录下查看当前系统的进程状态信息,把结果重定向到文件my2中。
ps –ef > my2
8.查看环境变量PS1的值,将结果附加重定向到文件my2中。
echo $PS1 >>test2
9.在当前目录下,查看环境变量LOGNAME值,将结果重定向到文件ss.txt中。
echo $LOGNAME >ss.txt
10. 在当前目录下创建子目录d1,把ss.txt文件复制到子目录d1中。
mkdir d1
cp ss.txt d1
11. 把ss.txt文件复制到文件copy中,然后把ss.txt改名为you1。
cp ss.txt copy
mv ss.txt you1
把you1文件的存取属性设置为对所有用户可读,可写和可执行。
chmod a+rwx test1.txt
13.为系统添加一个组名,组名为pet,然后把文件copy的组名更改为pet。
groupadd pet
chgrp copy pet
14.用长格式显示当前目录,把该信息附加重定向到文件you1中,然后用长格式显示子目录d1中的信息,把该信息附加重定向到文件you1中。
ls –l >>you1
ls d1 –l >>you1
15. 定位man命令的可执行二进制文件的位置,且把定位结果重定向到文件you2中。
whereis –b man >you2
16.在当前目录下,使用shell命令查看系统日期和时间,把该信息附加重定向到文件you2中。
date >>you2
17.在当前目录下,查看2012年7月份的月历,把结果重定向到文件he1中。
cal 7 2012 >he1
18. 创建子目录dd和ff,然后把当前目录信息以长格式附加重定向到文件he1中,最后把子目录dd改名为gg。
mkdir dd ff
ls –l >>he1
mv dd gg
19.查看环境变量HOME的值,且把该信息附加重定向到文件he1中。
echo $HOME >>test1
20.复制he1到文件copy1和文件copy2中,对其他用户设置文件copy1具有只读属性且不可写和不可执行。
cp he1 copy1
cp he2 copy2
chmod o+r copy1
chmod o-wx copy1
21.用长格式显示当前目录信息,把该信息附加重定向到文件he1中,删除文件copy1,再用长格式显示当前目录信息,把该信息附加重定向到文件he1中。
ls –l >>he1
rm copy1
ls –l >>he1
22.删除子目录ff,用长格式显示当前目录信息,把该信息附加重定向到文件he1中。
rmdir dd
ls –l >>he1
23. 把copy2文件的内容加上行号后输出到文件copy3中,再把copy3内容重定向到文件he2中。
cat –n copy2 > copy3
cat copy3>he2
24.在当前目录下,用awk程序把文件copy3的每行的第一个字段(即行号)输出,附加重定向到文件he2中。
awk ‘{print $1}’ copy3 >>test2
25.查找/bin目录中以字母c开头的文件,把结果重定向到文件her1中。
find /bin –name “c*” –print >her1
26.查看PATH变量的值,且把该信息附加重定向到文件her1中。
echo $PATH >>her1
复制her1文件到另外三个文件中,这三个文件的名称分别为new1,new2,new3。
cp her1 new1
cp her1 new2
cp her1 new3
28.把new1文件的存取属性设置为对所有用户可读,可写和可执行。
chmod a+rwx new1
29. 在当前目录中,创建子目录xyz,把当前目录中的所有文件复制到子目录xyz中。
mkdir xyz
cp * xyz
用长格式显示当前目录包括点文件在内的所有文件,把该信息附加重定向到文件her1中,然后再以长格式显示目录xyz中包括点文件在内的所有文件,把该信息附加重定向到文件her1中。
ls –la >>her1
ls –la xyz >>her1
31.删除文件new1和new2,用短格式显示当前目录中的所有文件,把该信息重定向到文件her2中。
rm new1
rm new2
ls >her2
32.在当前目录下,使用shell命令查看当前系统的环境变量值,把这些信息附加重定向到文件her2中。
env>>test2
33 .在当前目录下,查看环境变量MAIL的值,把结果重定向到文件pp.txt中。
echo $MAIL > pp.txt
34.把pp.txt文件的存取属性设置为对所有用户可读,可写和不可执行。
chmod a+rw pp.txt
chmod a-x pp.txt
35. 在当前目录下,创建子目录dir1,把pp.txt文件复制到字目录dir1中hello的文件中。
mkdir dir1
cp pp.tx dir1/hello
36. 复制pp.txt文件到同一层目录下名为him1的文件中。把变量a赋值为12345,显示变量a的值,且把值附加重定向到him1中。
cp pp.txt him1
a=12345
echo $a >>him1
37.用长格式显示子目录dir1中的信息,把该信息附加重定向到文件him1中。
ls –l dir >>him1
38.在当前目录中,创建空文件jjj,然后用长格式显示当前目录信息,把该信息附加重定向到文件him1中。
touch jjj
ls –l >>him1
为系统添加两个组,组名分别为ford和wrolf,把/etc/group文件的内容重定向到文件him2中。
groupadd ford
groupadd wrolf
cat /etc/group >him2
40.删除组名为ford的组,再把/etc/group文件的内容附加重定向到文件him2中。
groupdel ford
cat /etc/group >>him2
41. 显示当前用户使用的Shell,且把该信息重定向到文件they1中。
echo $SHELL >they1
42.在当前目录下,查看当前的进程状态信息,把信息附加重定向到文件they1中。
ps –ef >> they1
43. 复制文件they1到另外两个文件copy1和copy2中。
cp they1 copy1
cp they1 copy2
44.用长格式显示当前目录信息,把该信息附加重定向到文件they1中。
ls –l >>they1
45. 删除文件copy1, 把copy2改名为newcopy,用长格式显示当前目录信息,把该信息附加重定向到文件they1中。
rm copy1
mv copy1 newcopy
ls –l >>they1
在屏幕上显示文件/etc/passwd文件的内容,且把该信息输出重定向到文件they2中。
cat /etc/passwd >they2
47. 定位cat命令的可执行二进制文件的位置,且把定位结果附加重定向到文件they2中。
wheris –b cat >> they2
48.在当前目录下,使用shell命令查看当前的磁盘空间信息,把该信息附加重定向到文件they2中。
df >>they2
49. 在当前目录下,输出“hello world”的提示信息,然后把该信息重定向到文件jjj.txt中。
echo “hello world” >jjj.txt
50.显示jjj.txt文件的内容,并把该内容重定向到文件kkk.txt中。然后再次显示jjj.txt文件的内容,并把该内容附加重定向到文件kkk.txt中。
cat jjj.txt >kkk.txt
cat jjj.txt>>kkk.txt
51. 把kkk.txt文件的内容加上行号后,重定向到一个名为them1的文件中。
cat –n kkk.txt >them1
52.把kkk.txt的文件属主改成zhwang。
chown zhwang kkk.txt
53.用长格式显示当前目录信息,把该信息附加重定向到文件them1中。删除文件jjj.txt, 再用长格式显示当前目录信息,且把该信息附加重定向到文件them1中。
ls –l >>them1
rm jjj.txt
ls –l >>them1
54 为系统添加两个用户,用户名分别为wang和zhu,把/etc/passwd文件的内容重定向到文件them2中。
useradd wang
useradd zhu
cat /etc/passwd > them2
55. 删除用户zhu,把/etc/paswwd文件的内容附加重定向到文本文件them2中,
userdel zhu
cat /etc/passwd >>them2
56.把2012年12月份的月历输出到文件gg.txt中,用awk程序把gg.txt文件的第2列附加重定向到文件them2中。
cal 12 2012 >gg,.txt
awk ‘{print $2}’ gg.txt >>them2
57.在当前目录下,以短格式列出目录/dev中的内容,把其内容重定向到文件ttt.txt中,把ttt.txt文件复制到同一目录下名为all1和car的文件中。
ls /dev >ttt.txt
cp ttt.txt all1
cp ttt.txt car
58. 用长格式显示当前目录,把该信息附加重定向到文件all1中,删除文件car。
ls –l >>all1
rm car
59.把ttt.txt文件的存取属性设置为对其他用户可读,可写和可执行,
chmod o+rwx ttt.txt
60. 创建子目录kkk,把ttt.txt文件转移至该kkk子目录中。
mkdir kkk
mv ttt.txt kkk
61.创建一个空文件fff,把fff文件的属主改为wang。
touch fff
chown wang fff
62.用长格式显示当前目录信息,把该信息附加重定向到文件all1中。再以长格式显示子目录kkk的信息,把该信息附加重定向到文件all1中。
ls –l >>all1
ls –l kkk >>all1
63. 为系统添加三个用户,用户名分别为和student,worker,docter,把/etc/passwd文件的内容重定向到文本文件all2中。
useradd student
useradd worker
useradd doctor
cat /etc/passwd >all2
64. 为系统添加一个名叫teacher的组,把/etc/group文件的内容附加重定向到文本文件all2中。
groupadd teacher
cat /etc/group >>all2
65. 在当前目录下创建空文件a1,把文件a1的存取属性改为“rwxrwxr--”
touch a1
chmod u+rwx g+rwx o-r a1
66.以短格式查看目录/bin中的文件清单,把该信息重定向到文件zhu1中。
ls /bin
ls /bin >zhu1
67. 添加两个用户xyz1,xyz2, 把/etc/passwd文件内容附加重定向到文件zhu1中。
useradd xyz1
useradd xyz2
cat /etc/passwd >>zhu1
68. 把a1文件复制到b1和b2两个文件中。
cp a1 b1
cp a1 b2
69.删除名为xyz1的用户,然后把/etc/passwd文件内容附加重定向到文件zhu1中。
userdel xyz1
cat /etc/passwd
cat /etc/passwd >>zhu1
70.在当前目录下,用长格式显示当前目录信息,并把该信息附加重定向到文件zhu1中。
ls -l
ls -l >>zhu1
71.查看命令nslookup的帮助信息,将结果重定向到文件zhu2中。
man nslookup
man nslookup >zhu2
72.把环境变量PATH的值附加重定向到文件zhu2中。
echo $PATH
echo $PATH >>zhu2
73.查看系统当前日期和时间,将结果重定向到文件wang1中。
date
date >wang1
74. 创建空文件aa, 在当前目录下创建子目录dd。
touch aa
mkdir dd
75. 把aa文件复制文件bb中,再复制到子目录dd中名为cc的文件中。
cp aa bb
cp aa dd/cc
76.把文件bb的存取属性设置为对文件属主可读,可写和可执行。对组用户和其他用户可读,不可写和不可执行。
chmod u+rwx bb
chmod g-rwx o-rwx bb
77.为系统添加一个组名,组名为cat,然后把文件aa的组名更改为cat。
groupadd cat
chgrp cat aa
78.用长格式显示当前目录,把该信息附加重定向到文件wang1中,然后用长格式显示子目录dd中的信息,把该信息附加重定向到文件wang1中。
ls -l
ls -l >>wang1
ls -l dd >>wang1
79. 查找/bin目录中所有字母v开头的文件,且把定位结果重定向到文件wang2中。
find /bin -name “v*”
find /bin -name “v*”>wang1
80.查找ps命令的帮助信息,把该信息附加重定向到文件wang2中。
man ps
man ps >>wang2
81.查看2017年7月份的月历,把结果重定向到文件song1中。
cal 7 2017
cal 7 2017 >song1
82. 创建子目录dd,然后把当前目录信息以长格式附加重定向到文件song1中。
mkdir dd
ls -l >>song1
83.查看当前系统日期和时间信息,且把该信息附加重定向到文件song1中。
date
date>>song1
84.复制song1到文件copy1和文件copy2中,对组用户设置文件copy2具有只读属性且可写和不可执行。
cp song1 copy1
cp song1 copy2
chmod g+r copy2
chmod g-wx copy2
85.用长格式显示当前目录信息,把该信息附加重定向到文件song1中,删除文件copy2,再用长格式显示当前目录信息,把该信息附加重定向到文件song1中。
ls -l
ls -l >>song1
rm copy2
ls -l >>song1
86.把目录dd改名为gg, 用长格式显示当前目录信息,把该信息附加重定向到文件song1中。
mv dd gg
ls -l >>song1
87. 把系统中所有环境变量的值重定向到文件song2中。
env
env >song2
88.把当前文件系统的有效空间信息,附加重定向到文件song2中。
df
df >>song2
89.显示当前目录的路径,把结果重定向到文件tang1中。
pwd
pwd>tang1
90.查看HOME变量的值,且把该信息附加重定向到文件tang1中。
echo $HOME
echo $HOME >>tang1
91. 复制test1文件到另外两个文件中,这两个文件的名称分别为new1,new2。
cp test1 new1
cp test1 new2
92.当前目录下,创建目录www,把文件new1复制到www中的文件new3中。
mkdir www
cp new1 www/new3
93. 显示当前系统正在运行的进程信息,把该信息附加重定向到文件tang1中。
ps -ef
ps -ef >>tang1
94.用长格式显示当前目录包括点文件在内的所有文件,把该信息附加重定向到文件tang1中。
ls -a
ls -a >>tang1
95.删除文件new1,用长格式显示当前目录中的所有文件,把该信息重定向到文件tang2中。
rm new1
ls -l >tang2
96.在当前目录下,输出”hello world”显示信息,把该信息附加重定向到文件tang2中。
echo “hello world”
echo “hello world ” >>tang2
vi编辑器上机操作题
1.分别把2016的全年的年历输出到文件f1中,把2017年7月份的月历输出到文件test3中,用vi编辑器一次编辑文件f1和nt3。
把f1文件的4,5,6月所在行开始的7行复制并粘贴到文件nt3的最后一行后。
把文件test3的“July 2017”所在的行删除。
在文件test3的首行前插入一行,输入文字“information of year”。
在文件test3的最后一行后面附加上/bin目录中的文件清单。
2.把下面一段文字用vi编辑器输入到文本文件bj3中:
Time: PM 3:30 2012.5.30
Place:Computer Hall 408
Lecture:History of Computer Science
把第1行到第3行连续复制3遍。
在第一行前面添加标题“Meeting Notes”
把最后一行的“History”改成“Future”。
(4) 在最后一行后面添加上2012年5月月历。
3.用vi编辑器新建文件文件gd3,输入下面一行语句:
The vi editor was developed at the Univesity of California,Berkeley.
把该行语句复制10行。
把最后一行中出现的所有大写字母均改为相应的小写字母。
在第一行前面插入标题,内容是“vi history”。
在最后一行附加上当前日期和时间。
4.分别把2014年3月输出到文件f1中,把2013年3月份月历输出到文件test3中,用vi编辑器一次编辑文件f1和test3。
把f1文件的第2行到第5行内容复制并粘贴到文件test3的第3行后。
在文件test3的第1行前面插入标题 new information。
删除文件test3的最后两行。
在文件test3的最后一行后面附加上当前注册的用户信息。
5.用ps -ef命令查看进程信息,把结果信息重定向到文本文件wh3中,用vi编辑器编辑该文件。
1)仅仅保留该文件的前面5行,把后面的行都删除。
2)把该文件第1行中的字符串“PID”改成“Process ID”。
3)把第1行内容整体复制到最后一行下面。
4)在最后一行后面附加上2012年5月份的月历。
6.用df命令查看文件系统,把结果信息重定向到文本文件nj3中,用vi编辑器编辑该文件。
1)在文件的第1行前面插入一行,添加标题“file system information”。
2)把添加的标题行再复制5遍到最后一行下面。
3)把该文件中的出现的所有%号都删除掉。
4)在最后一行后面附加上当前目录的清单。
7.把2012年的5月份的月历重定向到文本文件te3中,用vi编辑器编辑该文件。
1)把文件第一行的标题“May 2012” 改为“year 2012 month 5”。
2)把关于星期的第二行复制到最后一行后面。
3)整体删除日期20到26号所在的行。
4)在最后一行后面附加上当前磁盘上文件系统的信息。
8.把2013年的年历重定向到文本文件tt3中,用vi编辑器编辑该文件。
1)删除1月份,2月份和3月份的月历。
2)把4,5,6月的月历整体复制到最后一行。
3)把文件第一行的标题“2013”改为“2013 year”。
4)在最后一行后面附加上2012年6月份的月历。
9.把2018年的年历重定向到文本文件qq3中,用vi编辑器编辑该文件。
1)删除从首行开始的9行。
2)把4,5,6月的月历整体复制到最后一行。
3)在第一行前面插入标题“2018 year”。
4)在最后一行后面附加上/etc/group文件的内容。
10.把2019年的5月份的月历重定向到文本文件pp3中,用vi编辑器编辑该文件。
1)把文件第一行的标题“May 2019” 改为“This is year 2019 month 5”。
2)把关于是星期几的第二行复制到最后一行后面。
3)整体删除日期16号所在的那一行。
4)在最后一行后面附加上目录/proc的清单内容。
11.用vi编辑器编辑新文件test3。
1)在test3文件的第1行输入“hello world ”。
2)接下来附加上文件系统的有效空间信息。
3)然后删除test3文件中的最后1行。
4)把第1行的内容复制5行,放到test3文件的最后一行后面。
12.用env命令查看环境变量,把结果信息重定向到文本文件dd3中,用vi编辑器编辑该文件。
(1) 仅仅保留该文件的前面5行,把后面的行都删除。
(2) 在该文件第1行前面插入一行“environment variable”。
(3) 把新的第1行内容整体复制5行到最后一行下面。
(4) 在最后一行后面附加上当前系统日期和时间。
Shell编程上机操作题
1编写Shell程序,首先显示提示信息:“below is the information of command line”,然后显示命令行中的程序名称,接着一行显示实际给出的所有实参字符串,最后一行再显示命令行上参数的个数。
echo "below is the infomaion of command line"
echo $0
echo $*
echo $#
2编写Shell程序,首先显示进程状态信息,接着把值12345赋给变量A1,然后输出一行信息“the value of A1 is: ”,然后输出变量A1的值。
ps –ef
A1=12345
echo "the vlue of A1 is:"
echo $A1
3编写Shell程序test4,首先着输出一行提示信息“please input a integer”,然后从键盘读入一个整数,接着显示该整数值,最后显示文件test4的内容。
echo "please input a integer"
read x
echo $x
cat test4
4编写Shell程序,首先显示一行信息:“input x and y”,然后从键盘读入两个整数,接着显示“the sum of two input is ”,然后把两个数的和输出到屏幕上,最后输出系统当前日期和时间信息。
echo "input x and y"
read x y
echo "the sum of two input is"
((s=x+y))
echo $s
date
5编写Shell程序,首先输出一行“this is the information of users”的提示信息,接着查看当前注册的用户信息,然后查找目录/bin中的所有以字母l开头的文件,最后显示当前工作路径。
echo "this is the infomation of users"
who
find /bin -name "l*" –print
pwd
6编写Shell程序,首先输出提示信息"please input x",然后从键盘读入一个整数,接着判断该数是否大于11,如果是则输出2012年12月份的月历,否则输出2013年11月份的月历。
echo "please input x"
read x
if ((x>=11))
then
cal 12 2012
else
cal 11 2013
fi
7编写Shell程序,首先输出一行提示信息:“please input a integer ”,接着从键盘输入一个整数,然后把该整数乘以10之后的值输出。
echo "please input a number "
read x
((x=x*10))
echo $x
8编写Shell程序,首先输出一行提示信息:“hello world”,接着给变量A赋值54321,然后把变量A的值减去10,接着输出变量A的值,最后显示该文件的内容。
echo "hello world "
A=54321
((A=A-10))
echo $A
cat test4
9编写Shell程序,首先显示日期和时间,然后显示当前工作目录,接着添加一个名为ecnomics的组,最后查找/usr目录下字母m开头的文件。
date
pwd
groupadd ecnomics
find /usr -name “m*”
10 编写Shell程序,首先显示命令ps的帮助信息,然后查看当前注册用户,查询域名 HYPERLINK "http://www.ntu.edu.cn" www.ntu.edu.cn 对应的IP地址,最后显示“all done”信息。
man ps
w
nslookup www.ntu.edu.cn
echo “all done “
11编写Shell程序,首先输出一行“hello everybody”的提示信息,接着添加一个名为xyz的用户信息,然后查找目录/proc中的所有以字母c开头的文件,最后删除名为yyy的文件。
echo “hello everybodyman”
useradd xyz
find /proc -name “c*”
rm -f yyy
12编写Shell程序test4,首先显示当前与主机连接的主机名和网卡硬件信息,然后查询域名 HYPERLINK "http://www.edn.cn" www.edn.cn 对应的IP地址,接着查找/bin目录下属于用户root的文件,最后显示文件test4的内容。
arp
nslookup www.edu.cn
find /bin -user root
cat test4
13编写Shell程序,使其执行时在屏幕上输出整数1~50,但其中位于20和30之间的偶数不输出。
for ((i=1;i<=50;i++))
do
if ((i>=20 && i<=30 && i%2==0))
then continue
fi
echo $i
done
14编写Shell程序,在屏幕上输出10行,第一行输出1个“*”号,第二行输出3个“*”号,第二行输出5个“*”号,依此类推。
for ((i=1;i<=10;i++))
do
for ((j=1;j<=2*i-1;j++))
do
echo -n "*"
done
echo
done
15编写Shell程序,输入一批正整数(以0为结束标志),请统计其中奇数的个数,并把统计结果输出。
sum=0
echo "please enter the interger,ended by 0"
read num
while((num!=0))
do
if((num%2==1))
then ((sum=sum+1))
fi
read num
done
echo "the number of ji shu is $sum"
16 编写Shell程序,求1*1+2*2+3*3+…….+50*50的总和。
sum=0
for ((i=1;i<=50;i++))
do
((ji=i*i))
((sum=sum+ji))
done
echo $sum
17编写Shell程序,列出等差数列1,3,5,7,9,…的前20项及其总和。(上机)
n=1
s=0
for ((i=1;i<=20;i++))
do
echo $n
((s=s+n))
((n=n+2))
done
echo "sum=$s"
18编写Shell程序,把100分转换为5级计分制,从键盘输入百分值,根据情况,显示具体的等级,其中90-100之间对应A,80-89之间对应B,70-79之间对应C,60-69之间对应D,60以下对应E。
echo "please input x="
read x
if(($x<=100 && $x>=90))
then
echo "A"
else
if(($x>=80 && $x<=89))
then
echo "B"
else
if(($x>=70 && $x<=79))
then
echo "C"
else
if(($x>=60 && $x<=69))
then
echo "D"
else
echo "E"
fi
fi
fi
fi
19编写Shell程序,在屏幕上输出如下格式的九九表。
1*1=1
2*1=2 2*2=4
……………….
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
for ((i=1;i<=9;i++))
do
for ((j=1;j<=i;j++))
do
((b=i*j))
echo -n "$i*$j=$b "
done
echo
done
20编写程序test5,对命令行传给它的数字参数求和并显示结果,例如
用户键入test5 10 20 30回车,则显示如下:
10 + 20 + 30 = 60
count=$#
s=0
i=1
while [ $i -le $count ]
do
((i=i+1))
echo -n "$1"
((s=s+$1))
shift
if [ $i -le $count ]
then
echo -n "+"
fi
done
echo "=$s"
21编写程序test5,对命令行传给它的数字参数求积并显示结果,例如用户键入test5 2 4 3后回车,则屏幕显示如下:2 * 4 * 3 = 24。
count=$#
s=1
i=1
while [ $i -le $count ]
do
((i=i+1))
echo -n "$1"
((s=s*$1))
shift
if [ $i -le $count ]
then
echo -n "*"
fi
done
echo "=$s"
22编写Shell程序test5,使之从命令行接受数字,输出最大值,例如,键入test5 1 2 3,则屏幕显示:the largest number is : 3。
n=$#
if (($#<1))
then echo "error number"
exit
else
max=$1
while ((n>=1))
do
if (($1>=max))
then max=$1
fi
shift
((n=n-1))
done
echo " the largest number is :$max"
fi
23编写程序test5,使之从命令行接受数字,输出最小值,例如,键入test5 1 2 3屏幕显示:the smallest number is : 1。
n=$#
if (($#<1))
then echo "error number"
exit
else
min=$1
while ((n>=1))
do
if (($1<=min))
then min=$1
fi
shift
((n=n-1))
done
echo " the smallest number is : $min"
fi
24编写Shell程序,求1!+ 2!+ 3!+….+ 10!的值。
s=0
echo "please input number:"
read x
for ((i=1;i<=x;i++))
do
t=1
for ((j=1;j<=i;j++))
do
((t=t*j))
done
((s=s+t))
done
echo "the sum is $s"
PAGE \* MERGEFORMAT8
PAGE
PAGE 8