六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 32|回复: 0

Shell编程基础

[复制链接]

升级  1%

55

主题

55

主题

55

主题

举人

Rank: 3Rank: 3

积分
203
 楼主| 发表于 2013-2-4 13:39:24 | 显示全部楼层 |阅读模式
#!/bin/sh
变量赋值和引用  


#Object Assignment
studentName="leiwuluan";
score=111;

echo "$studentName score is $score";
if 语 句

#shell if...then else
tom="boy";
jierui="girl";

if [ "$tom" = "$jierui" ]; then
        echo "tom and jierui sex together!";
else
        echo "tom sex=$tom , jierui sex=$jierui, they sex dones't the same";
fi
case 语句

#shell case
flag="3";

case "$flag" in
        "1"*)
        echo "1";;
        "2"*)
        echo "2";;
        "3"*)
        echo "3";;
*)echo "other";;
esac

select 语句

#select

echo "What is your favourite os?";
#select var in "Linux" "Window" "Other" "Leiwuluan";do
#       break;
#done
#echo "$var is your favourite os!";
 
 
while/for 循环

#while for
for i in a b c d e;do
        echo "$i";
done


for i in $*;do
        if [ -f "$rpmpackage" ];then
                echo "============$rpmpackage==============";
        else
                echo "=====ERROR:connot read file $rpmpackage"
        fi
done
 
 
Shell里的一些特殊符号

引号

引号(单引号和双引号)可以防止通配符*的扩展:
 
 
Here Document

       当要将几行文字传递给一个命令时,用here documents是一种不错的方法。对每个脚本写一段帮助性的文字是很有用的,此时如果使用here documents就不必用echo函数一行行输出。Here document以 << 开头,后面接上一个字符串,这个字符串还必须出现在here document的末尾。下面是一个例子,在该例子中,我们对多个文件进行重命名,并且使用here documents打印帮助:
 
 
 
 
#!/bin/sh/rm 1.txt 2.txt 3.txtfor i in {01,02,03,04,05};do        echo "/home/co_athena/sgh_day_log/allLogs/log1_6.log.2011-09-$i >> 1.txt";cat /home/co_athena/sgh_day_log/allLogs/log1_6.log.2011-09-$i >> 1.txt;donefor i in {09,10,11,12};do        echo "/home/co_athena/sgh_day_log/allLogs/log1_6.log.2011-10-$i >> 2.txt";cat /home/co_athena/sgh_day_log/allLogs/log1_6.log.2011-10-$i >> 2.txt;donefor i in {24,25,26,27};do        echo "/home/co_athena/sgh_day_log/allLogs/log1_6.log.2011-10-$i >> 3.txt";cat /home/co_athena/sgh_day_log/allLogs/log1_6.log.2011-10-$i >> 3.txt;doneecho "线:31221858 PV UV";cat 1.txt |grep "3802158" |awk -F">adid=" '{print $2}' |awk -F"<[|]>" '{print $1}' |grep -v null |wc -lcat 1.txt |grep "380821858" |awk -F">adid=" '{print $2}' |awk -F"<[|]>" '{print $1}' |grep -v null |sort |uniq |wc -l echo "携程:3732125 PV UV";cat 2.txt |grep "32129415" |awk -F">adid=" '{print $2}' |awk -F"<[|]>" '{print $1}' |grep -v null |wc -lcat 2.txt |grep "372115" |awk -F">adid=" '{print $2}' |awk -F"<[|]>" '{print $1}' |grep -v null |sort |uniq |wc -l echo "网:4455754 PV UV";cat 3.txt |grep "445214" |awk -F">adid=" '{print $2}' |awk -F"<[|]>" '{print $1}' |grep -v null |wc -lcat 3.txt |grep "44553854" |awk -F">adid=" '{print $2}' |awk -F"<[|]>" '{print $1}' |grep -v null |sort |uniq |wc -l   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表