unix的shell程序怎么写?

unix的shell程序怎么写?,第1张

shell是linux一个人机界面的程序。它有ksh,bsh,csh,tsh等等,每种shell尽管都差不多,但都判笑分别有些差别,具体写script的时候,需要看对应的shell的语法。或冲租

一个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]$

希望对你有帮助!!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8216121.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存