一个shell程序用什么解释,是体现在开衫兆头这句,和其他手稿语言如perl一样。格式如下:
#!/bin/sh
表明这个手稿程序,是用bash解释的。
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+1sum=sum+$2sum2=sum2+$3}END{print $1"\t"sum/count"\t"sum2/count}' tmpfile>>outfile
done
#把结果打印到屏幕上面
cat outfile
[u@H /billing/user/xufc/project]$
希望对你有帮助!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)