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.2在两个程序之间建立命名管道。
工作方式:
执行一个读进程,它创建一个叫做“aPipe”的命名管道。然后它从管道读并显示以NULL结束的行,直到所有管道被所有的写进程关闭。
执行一个或几个写进程,每个进程都执行下面的操作:打开这个叫做“aPipe”的命名管道,向管道发送三个消息。如果写进程试图打开管道时管道不存在,写进程则每1秒钟重试一次,直到成功。当一个写进程的所有消息都发送后,该写进程关闭管道并退出。
展开
 我来答
sun12311
推荐于2017-09-07 · 超过17用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:0
展开全部
先占下楼层,空了慢慢给你做!

先做第一题1月12日:

#!/bin/bash
echo this "date" :`date`;
echo this "cal" :`cal`;
echo this "pwd" :`pwd`;
echo this "ls" : `ls`.

第二题1月12日:

这个没法写了撒 太笼统;建议翻翻书。
我列个环境变量的例子吧:

#!/bin/bash
echo "第二题":
TEST_DIR=/root
export $TEST_DIR;
echo "环境变量TEST_DIR是/root".

第三题1月12日:

#!/bin/bash

echo "第三题for":
echo "3.1 for"
x=0
for ((i=1 ; i<101 ;i++));
do
x=$(($x+$i))
done
echo $x

echo "---------------------------------"
echo "第三题while":
echo "3.2 while"
x=0
i=1
while [ $i -lt 101 ]
do
i=$(($i+1))
x=$(($x+$i))
done
echo $x

第三题第二个

#!/bin/bash

echo "3.2"

function fib {
if [ $1 -lt 2 ]; then
echo -n $1
else
local n_2=$(($1 - 2))
local n_1=$(($1 - 1))
local f_n_2=$(fib $n_2)
local f_n_1=$(fib $n_1)
local f_n=$((f_n_2 + f_n_1))
echo -n $f_n
fi
}

n=10
for ((i = 0; i < $n; i++))
do
printf "fib(%2d) = %d\n" $i $(fib $i)
done

参考资料: 经验

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-01-11
展开全部
自己做!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式