
linux(shell)脚本编程题目求教(200分请教)
1.shell脚本的建立和执行。利用vi建立一个脚本文件,其中包括data,cal,pwd,ls等常用命令。然后以不同方式执行该脚本。2.熟悉shell变量、环境变量和位...
1. shell脚本的建立和执行。
利用vi建立一个脚本文件,其中包括data,cal,pwd,ls等常用命令。然后以不同方式执行该脚本。
2. 熟悉shell变量、环境变量和位置参数,了解bash的特殊字符。
3. 编写shell脚本,包括常用的控制结构和函数的使用。
3.1分别使用for和while语句编写程序计算“1+2+3…+100”的值;注意区分for和while语句的差别。
3.2编写脚本求Fibonacci数列的前10项。
Fibonacci数列有如下特点:第1,2个数为1,1.从第3个数开始,该数是前面两个数之和。即:
F1=1 (n=1)
F2=1 (n=1)
Fn= Fn-1+ Fn-2 (n≥3)
1. 使用系统调用对文件进行操作。
编写一个程序,把一个文件的内容复制到另一个文件上,即实现简单的copy功能。
要求:只用open(),read(),write(),close()系统调用,程序的第一个参数是源文件,第二个参数是目的文件。
2. 使用系统调用对进程进行控制。
2.1 SIGCHLD信号的处理——子进程的死亡
编写一个程序,程序执行步骤:
1)父进程安装一个SIGCHLD处理程序,在子进程终止时执行。
2)父进程创建一个子进程。
3)父进程休眠指定的秒数。当它被唤醒时,它给子进程发送一个SIGINT信号杀死子进程。
4)如果子进程在父进程结束休眠之前终止,执行父进程的SIGCHLD处理程序,使父进程立即终止。
2.2 SIGSTOP和SIGCONT信号的使用
编写一个程序,程序执行步骤:
1) 主程序创建两个子进程,它们都进入无限循环并每秒显示一个消息。
2) 主程序等待3秒钟,然后挂起第一个子进程。第二个继续执行。
3) 在又一个3秒钟之后,父进程重新启动第一个子进程.
4) 再3秒钟后,终止两个进程。
3. 使用管道机制进行I/O。
3.1使用未命名管道构建管道线。
说明:与重定向机制类似,即把一个的进程标准输出连接到另一个进程的标准输入。
3.2在两个程序之间建立命名管道。
工作方式:
执行一个读进程,它创建一个叫做“aPipe”的命名管道。然后它从管道读并显示以NULL结束的行,直到所有管道被所有的写进程关闭。
执行一个或几个写进程,每个进程都执行下面的操作:打开这个叫做“aPipe”的命名管道,向管道发送三个消息。如果写进程试图打开管道时管道不存在,写进程则每1秒钟重试一次,直到成功。当一个写进程的所有消息都发送后,该写进程关闭管道并退出。 展开
利用vi建立一个脚本文件,其中包括data,cal,pwd,ls等常用命令。然后以不同方式执行该脚本。
2. 熟悉shell变量、环境变量和位置参数,了解bash的特殊字符。
3. 编写shell脚本,包括常用的控制结构和函数的使用。
3.1分别使用for和while语句编写程序计算“1+2+3…+100”的值;注意区分for和while语句的差别。
3.2编写脚本求Fibonacci数列的前10项。
Fibonacci数列有如下特点:第1,2个数为1,1.从第3个数开始,该数是前面两个数之和。即:
F1=1 (n=1)
F2=1 (n=1)
Fn= Fn-1+ Fn-2 (n≥3)
1. 使用系统调用对文件进行操作。
编写一个程序,把一个文件的内容复制到另一个文件上,即实现简单的copy功能。
要求:只用open(),read(),write(),close()系统调用,程序的第一个参数是源文件,第二个参数是目的文件。
2. 使用系统调用对进程进行控制。
2.1 SIGCHLD信号的处理——子进程的死亡
编写一个程序,程序执行步骤:
1)父进程安装一个SIGCHLD处理程序,在子进程终止时执行。
2)父进程创建一个子进程。
3)父进程休眠指定的秒数。当它被唤醒时,它给子进程发送一个SIGINT信号杀死子进程。
4)如果子进程在父进程结束休眠之前终止,执行父进程的SIGCHLD处理程序,使父进程立即终止。
2.2 SIGSTOP和SIGCONT信号的使用
编写一个程序,程序执行步骤:
1) 主程序创建两个子进程,它们都进入无限循环并每秒显示一个消息。
2) 主程序等待3秒钟,然后挂起第一个子进程。第二个继续执行。
3) 在又一个3秒钟之后,父进程重新启动第一个子进程.
4) 再3秒钟后,终止两个进程。
3. 使用管道机制进行I/O。
3.1使用未命名管道构建管道线。
说明:与重定向机制类似,即把一个的进程标准输出连接到另一个进程的标准输入。
3.2在两个程序之间建立命名管道。
工作方式:
执行一个读进程,它创建一个叫做“aPipe”的命名管道。然后它从管道读并显示以NULL结束的行,直到所有管道被所有的写进程关闭。
执行一个或几个写进程,每个进程都执行下面的操作:打开这个叫做“aPipe”的命名管道,向管道发送三个消息。如果写进程试图打开管道时管道不存在,写进程则每1秒钟重试一次,直到成功。当一个写进程的所有消息都发送后,该写进程关闭管道并退出。 展开
3个回答
展开全部
1. 用vi打开一个空文件,文件名随意,然后在第一行写:
#!/bin/bash
另起一行跟上要使用的命令,比如ls date之类的,一条命令一行。
退出vi后,在命令行下输入 chmod +x 文件名 给文件增加运行权限
最后用 ./文件名 执行这个文件就可以了。
2. 环境变量用 env 和 set 2个命令可以看到,在命令行下直接输入就可以了,至于具体内容,太多,你得自己去查
3.
for 循环:
i=1
for i in 1..100; do
i=$(($i + 1))
done
while循环
i=1
while [ $i -le 100 ]; do
i=$(($i + 1))
done
算了,这些都能做,但做起来太麻烦,放弃了
#!/bin/bash
另起一行跟上要使用的命令,比如ls date之类的,一条命令一行。
退出vi后,在命令行下输入 chmod +x 文件名 给文件增加运行权限
最后用 ./文件名 执行这个文件就可以了。
2. 环境变量用 env 和 set 2个命令可以看到,在命令行下直接输入就可以了,至于具体内容,太多,你得自己去查
3.
for 循环:
i=1
for i in 1..100; do
i=$(($i + 1))
done
while循环
i=1
while [ $i -le 100 ]; do
i=$(($i + 1))
done
算了,这些都能做,但做起来太麻烦,放弃了
展开全部
1. 用vi打开一个空文件,文件名随意,然后在第一行写:
#!/bin/bash
另起一行跟上要使用的命令,比如ls date之类的,一条命令一行。
退出vi后,在命令行下输入 chmod +x 文件名 给文件增加运行权限
最后用 ./文件名 执行这个文件就可以了。
2. 环境变量用 env 和 set 2个命令可以看到,在命令行下直接输入就可以了,至于具体内容,太多,你得自己去查
3.
for 循环:
i=1
for i in 1..100; do
i=$(($i + 1))
done
while循环
i=1
while [ $i -le 100 ]; do
i=$(($i + 1))
done
#!/bin/bash
另起一行跟上要使用的命令,比如ls date之类的,一条命令一行。
退出vi后,在命令行下输入 chmod +x 文件名 给文件增加运行权限
最后用 ./文件名 执行这个文件就可以了。
2. 环境变量用 env 和 set 2个命令可以看到,在命令行下直接输入就可以了,至于具体内容,太多,你得自己去查
3.
for 循环:
i=1
for i in 1..100; do
i=$(($i + 1))
done
while循环
i=1
while [ $i -le 100 ]; do
i=$(($i + 1))
done
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-01-27
展开全部
父进程安装一个SIGCHLD处理程序,在子进程终止时执行
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询