帮忙写几个简单的Unix shell程序啊.... 很急啊!!! 懂的来写下!!!
懂一个就写一个嘛,不一定全写3、请解释以下命令完成了什么功能?1)%exportPATH="$PATH:/usr/games"2)%cut-d;-f2/home/abc....
懂一个就写一个嘛,不一定全写
3、请解释以下命令完成了什么功能?
1)%export PATH="$PATH:/usr/games"
2)%cut -d;-f 2 /home/abc.data
4、使用cat和重定向命令实现建立1个文件,然后复制文件,再在文件的末尾添加内容。
5、为便于系统管理员对磁盘分配的管理,请编写一段B-shell程序,当文件系统/home占用空间改变时给出相应的信息提示。要求/home占用量在系统磁盘中为:
1)小于50%时,提示“用户文件系统磁盘使用负荷量小”。
2)大于50%,小于90%时,提示“用户文件系统磁盘使用负荷量正常”。
3)大于等于90%时,提示“用户文件系统磁盘使用负荷量偏大”。
6、使用for循环语句编写一段B-shell程序,完成显示用户注册目录下的a_sub, b_sub子目录下的所有C程序文件及其目标文件的列表
7、假设score.txt文件中保存了三个班级的学生考试成绩,请编写一段shell程序计算每个班级的学生人数与平均分。 展开
3、请解释以下命令完成了什么功能?
1)%export PATH="$PATH:/usr/games"
2)%cut -d;-f 2 /home/abc.data
4、使用cat和重定向命令实现建立1个文件,然后复制文件,再在文件的末尾添加内容。
5、为便于系统管理员对磁盘分配的管理,请编写一段B-shell程序,当文件系统/home占用空间改变时给出相应的信息提示。要求/home占用量在系统磁盘中为:
1)小于50%时,提示“用户文件系统磁盘使用负荷量小”。
2)大于50%,小于90%时,提示“用户文件系统磁盘使用负荷量正常”。
3)大于等于90%时,提示“用户文件系统磁盘使用负荷量偏大”。
6、使用for循环语句编写一段B-shell程序,完成显示用户注册目录下的a_sub, b_sub子目录下的所有C程序文件及其目标文件的列表
7、假设score.txt文件中保存了三个班级的学生考试成绩,请编写一段shell程序计算每个班级的学生人数与平均分。 展开
3个回答
展开全部
3.
1).把PATH 变量导出来,其实就是为了给后面的shell子程序使用,在这里其实相当于在原有的PATH基础上添加了一个/usr/games路径。
2).从文件 /home/abc.data里面获取第2列,以分号(;)作为列分隔符,d代表分隔符(delimer),f代表字段(field)后面跟着具体的那一个字段,或者字段范围,如-f2-5就是截取第2列到第5列的内容
4.假设原有文件为a,那么可以如下方法做:
cat a>b,创建了b文件
cp b c,复制b文件,生成c文件
添加内容,vi c进去可以了
5.这个要根据(df)命令具体执行情况来进行编码,比如我的系统执行情况如下:
[u@H /billing/user/xufc]$df -vk /home
/home (/dev/vg00/lvol5 ) : 130104 total allocated Kb
124288 free allocated Kb
5816 used allocated Kb
5 % allocation used
[u@H /billing/user/xufc]$
那么就可以编写如下脚本:
#!/bin/bash
Used=`df -vk /home|grep "allocation used"|awk '{print $1}'`
if [ $Used -gt 90 ]
then
echo "用户文件系统磁盘使用负荷量偏大"
else
if [ $RL -gt 50 ]
then
echo "用户文件系统磁盘使用负荷量正常"
else
echo "用户文件系统磁盘使用负荷量小"
fi
fi
6.先用find(或其他命令组合如ls xxx|grep xxx)找到相关c文件和目标文件,然后for循环打印出来
#!/bin/bash
#查找a_sub下此文件及其目标文件
afile=`find /$HOME/a_sub/ -name "*.c" -o -name "*.o"`
bfile=`find /$HOME/b_sub/ -name "*.c" -o -name "*.o"`
#合并找到的文件到cfile中
cat afile bfile>cfile
for i in ${cfile}
do
echo $i
done
7.我仿照了个数据,请参考脚本和结果:
[u@H /billing/user/xufc/project]$cat 1.txt
班级 数学 语文
A 20 90
A 30 80
A 40 60
B 40 50
B 60 40
C 90 30
C 80 70
C 70 40
C 60 30
[u@H /billing/user/xufc/project]$./statistic.sh
班级 数学 语文
A 30 76.6667
B 50 45
C 75 42.5
[u@H /billing/user/xufc/project]$cat statistic.sh
#!/usr/bin/ksh
#输出文件头
sed -n '1p' 1.txt>outfile
#计算出班级
ban=`sed -n '2,$p' 1.txt|cut -d" " -f1 |sort -u`
for i in ${ban}
do
grep $i 1.txt>tmpfile
#列统计
awk '{count=count+1;sum=sum+$2;sum2=sum2+$3}END{print $1"\t"sum/count"\t"sum2/count}' tmpfile>>outfile
done
#把结果打印到屏幕上面
cat outfile
[u@H /billing/user/xufc/project]$
希望对你有帮助!!
1).把PATH 变量导出来,其实就是为了给后面的shell子程序使用,在这里其实相当于在原有的PATH基础上添加了一个/usr/games路径。
2).从文件 /home/abc.data里面获取第2列,以分号(;)作为列分隔符,d代表分隔符(delimer),f代表字段(field)后面跟着具体的那一个字段,或者字段范围,如-f2-5就是截取第2列到第5列的内容
4.假设原有文件为a,那么可以如下方法做:
cat a>b,创建了b文件
cp b c,复制b文件,生成c文件
添加内容,vi c进去可以了
5.这个要根据(df)命令具体执行情况来进行编码,比如我的系统执行情况如下:
[u@H /billing/user/xufc]$df -vk /home
/home (/dev/vg00/lvol5 ) : 130104 total allocated Kb
124288 free allocated Kb
5816 used allocated Kb
5 % allocation used
[u@H /billing/user/xufc]$
那么就可以编写如下脚本:
#!/bin/bash
Used=`df -vk /home|grep "allocation used"|awk '{print $1}'`
if [ $Used -gt 90 ]
then
echo "用户文件系统磁盘使用负荷量偏大"
else
if [ $RL -gt 50 ]
then
echo "用户文件系统磁盘使用负荷量正常"
else
echo "用户文件系统磁盘使用负荷量小"
fi
fi
6.先用find(或其他命令组合如ls xxx|grep xxx)找到相关c文件和目标文件,然后for循环打印出来
#!/bin/bash
#查找a_sub下此文件及其目标文件
afile=`find /$HOME/a_sub/ -name "*.c" -o -name "*.o"`
bfile=`find /$HOME/b_sub/ -name "*.c" -o -name "*.o"`
#合并找到的文件到cfile中
cat afile bfile>cfile
for i in ${cfile}
do
echo $i
done
7.我仿照了个数据,请参考脚本和结果:
[u@H /billing/user/xufc/project]$cat 1.txt
班级 数学 语文
A 20 90
A 30 80
A 40 60
B 40 50
B 60 40
C 90 30
C 80 70
C 70 40
C 60 30
[u@H /billing/user/xufc/project]$./statistic.sh
班级 数学 语文
A 30 76.6667
B 50 45
C 75 42.5
[u@H /billing/user/xufc/project]$cat statistic.sh
#!/usr/bin/ksh
#输出文件头
sed -n '1p' 1.txt>outfile
#计算出班级
ban=`sed -n '2,$p' 1.txt|cut -d" " -f1 |sort -u`
for i in ${ban}
do
grep $i 1.txt>tmpfile
#列统计
awk '{count=count+1;sum=sum+$2;sum2=sum2+$3}END{print $1"\t"sum/count"\t"sum2/count}' tmpfile>>outfile
done
#把结果打印到屏幕上面
cat outfile
[u@H /billing/user/xufc/project]$
希望对你有帮助!!
展开全部
3、请解释以下命令完成了什么功能?
1)%export PATH="$PATH:/usr/games"
设置当前shell的 PATH环境变量
2)%cut -d;-f 2 /home/abc.data
截取/home/abc.data文件 以;为分隔符的第二个域
4.cat file1 > file2;cp file2 file3;cat file3 >> file1
5
#!/bin/bash
RL=`df /home | grep -v 已用 | awk '{print $5}' | awk -F% '{print $1}'`
if [ $RL -gt 90 ]
then
echo "用户文件系统磁盘使用负荷量偏大"
else
if [ $RL -gt 50 ]
then
echo "用户文件系统磁盘使用负荷量正常"
else
echo "用户文件系统磁盘使用负荷量小"
fi
fi
6.
#!/bin/bash
cfile=(`find /home/$USER/a_sub/*.c /home/$USER/a_sub/*.c`)
for i in ${cfile[*]}
do
echo $i
done
第七个给一个score.txt文件。
1)%export PATH="$PATH:/usr/games"
设置当前shell的 PATH环境变量
2)%cut -d;-f 2 /home/abc.data
截取/home/abc.data文件 以;为分隔符的第二个域
4.cat file1 > file2;cp file2 file3;cat file3 >> file1
5
#!/bin/bash
RL=`df /home | grep -v 已用 | awk '{print $5}' | awk -F% '{print $1}'`
if [ $RL -gt 90 ]
then
echo "用户文件系统磁盘使用负荷量偏大"
else
if [ $RL -gt 50 ]
then
echo "用户文件系统磁盘使用负荷量正常"
else
echo "用户文件系统磁盘使用负荷量小"
fi
fi
6.
#!/bin/bash
cfile=(`find /home/$USER/a_sub/*.c /home/$USER/a_sub/*.c`)
for i in ${cfile[*]}
do
echo $i
done
第七个给一个score.txt文件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1)%export PATH="$PATH:/usr/games" >> 添加/usr/games到PATH环境变量里
4、使用cat和重定向命令实现建立1个文件,然后复制文件,再在文件的末尾添加内容。
>> echo "" > /opt/newfile 建立一个空文件
>> cat /opt/newfile > /opt/copynewfile 复制文件
>> echo >> /opt/copynewfile 在文件末尾添加
4、使用cat和重定向命令实现建立1个文件,然后复制文件,再在文件的末尾添加内容。
>> echo "" > /opt/newfile 建立一个空文件
>> cat /opt/newfile > /opt/copynewfile 复制文件
>> echo >> /opt/copynewfile 在文件末尾添加
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询