1、设计一个程序cuts,它由标准输入读取数据,获取有第一个参数n和第二个参数m所限定范围的数据,n和m都是整数,即从输入的字符串中抽取第n个字符至第m个字符之间的所有字符(包括这两个字符)并显示出来。
$ cuts 11 14
This is a test of cuts program(回车)
test(显示结果)
#!/bin/bash 它的作用就是告诉shell,里面的脚本使用那种解析器来执行的脚本cut是以每一行为一个处理对象的, 字符(characters),用选项-c,中文字符和空格都算一个字符
2、利用for循环将当前目录下的.c文件移到指定的目录下,并按文件大小排序,显示移动后指定目录的内容。
#!/bin/bash
for file in `ls|grep “.*.c”` 要用到ESC 下面的符号
{
mv -i $file./a -i是文件移动同文件名会有提示
}
ls –lS ./a -S是按大小排序
3、编写一个shell脚本,求斐波那契奇数列的前10项及总和。
#!/bin/bash
i=1
j=0
sum=0
for(( k=0; k<10; k++ ))
do
echo –n “$i,” -n不能再最后换行 echo输出流
let sum+=I let 是linux的整数运算命令
let m=i
let i+=j
let j=m
done
echo “sum=$sum”
4、编写一个shell脚本,程序运行时,要求输入两个数字。然后判断数字的大小,如果两个数字的和大于100,就输出“x+y>100”;如果两个数字的和小于等于100并且大于10,就输出“x+y>10”;如果x>y,则求出x除以y的余数并输出“x mod y = ?(把计算的值代替问号)”,否则求出y除以x的余数并输出“y mod x = ?”
#!/bin/bash
-gt:大于 -le:小于等于 如果上一条命令执行后的结束代码不是0则执行下面的命令(then)
5、编写一个shell脚本,并利用函数实现数列求和运算。即主程序接受两个数字,分别作为数列头和数列尾,如果第一个数字不小于第二个数字则输出“wrong number”,否则将这两个数字传递给函数;函数把这两个数字中间的数字加起来求和,并输出。
如:当输入 3 6时,函数计算 3+4+5+6的值并输出。
Function shulie()是一个函数,shulie $a $b 是传递参数给函数
6、编写特洛伊木马shell脚本。以文本方式登陆界面,接收用户输入的名字和密码。一旦用户在这种伪装界面登陆,就获取用户名和密码,并保存在指定的文件中。接着睡眠几秒,然后显示录入错误的信息,使用户以为输入有误。最后在调用真正的登陆程序,允许用户正常登陆。
7、编写shell脚本,创建一个5个元素的数组,输出各个元素的值
A是数组名,初始化A数组的值,以空格隔开
8、编写一个脚本,用于统计所指定文件的行数总数。输出结果为各个文件的名字+行数,以及总行数。
如:当输入./脚本名 file1 file2,脚本计算file1和file2两个文件的总行数
-l 是统计行数的参数
9、编写一个shell脚本,根据键盘输入的值,给出对应的提示;输入[A – Z ],输出Uppercase Letter;输入[a-z],输出Lowercase Letter;输入[0-9],输出Digit;输入其他,输出Punctuation,whitespace, or other
1. 在脚本最前面加入如下句: export LC_ALL=C
Case要在每个条件末尾加;; esac
10、编写shell脚本,提示用户输入用户名,并判断此用户名是否存在与系统用户中
grep "$name"/etc/passwd > /dev/null 2>&1
//探索与变量name内相匹配的字符
不管结果是是否正确信息扔到/dev/null垃圾箱
2>&1不显示任何信息操作信息
if [ $? -eq 0 ] ;then
//判断$? 是否等于 0 $?里的数值跟你上一个命令执行的成功与否有关
//如果你可以通过输入一条命令进行试验
然后通过
//pwd;echo $? $?结果为0
//asdfasdf;echo $?结果127
欢迎光临 WDlinux官方论坛 (http://wdlinux.cn/bbs/) | Powered by Discuz! 7.2 |