#!/bin/bash

read -p "input a dight:"
echo $REPLY

DATE=`date`
echo "DATE is ${DATE}"

USERS=`who |wc -l`
echo "LOGIN in user is ${USERS}"

UP=`date;uptime`
echo "Uptime is ${UP}"

#echo "HELLO World!"

#echo "what is your name"
#read person
#echo "HELLO ${person}"

#name="test"

#echo ${name}

myUrl="http://www.baidu.com/"
#readonly myUrl
#myUrl="http://www.sina.com.cn/"
#myUrl
#unset myUrl
#echo ${myUrl}

echo "file name:$0"
echo "1st parameters:$1"
echo "2nd parameters:$2"
echo "values:$*"
echo "values:$@"
echo "pid:$$"
echo "return value:$?"
echo "Total number paramters:$#"

a=10
echo -e "value a is ${a}\n"

echo "value a is ${a}\n"

d=`date +%F`
exec >$d.log 2>&1
echo "Begin at `date`"
ls /learing
cd /log
ls /root >root.log
echo "End at `date`"

ipaddress()
{
ifconfig |grep -A1 "$1"|tail -1|awk '{print $2}'|awk -F ':' '{print $2}'
}

read -p "请输入网卡名字:" ipname
myip=`ipaddress $ipname`
echo "$ipname address is $myip"

#机器台数
machineNum=`ifconfig |grep -n '^[a-zA-Z0-9]'|wc -l`

#获取机器的机器名所在行和机器名
machineName=`ifconfig |grep -n 'Link encap'|awk -F' ' '{print $1}'|awk -F':' '{print $2}'`

#获取机器的机器名对应的IP地址
machineIP=`ifconfig |grep -n 'inet addr'|awk -F':' '{print $3}'|awk -F' ' '{print $1}'`

for num in `seq 1 $machineNum`;
do
#`echo "$machineName"|sed -n '$num' p"`
n=`echo "$machineName"|sed -n "$num"p`
m=`echo "$machineIP"|sed -n "$num"p`
echo "机器$num:$n的IP地址是:$m";
done

#if例子1
a=1
if [ $a == 2 ]
then
echo "true"
elif [ $a -lt 10 ]
then
echo "no false"
else
echo "false"
fi

#if例子2
# > gt < lt
# >= ge <= le == eq != ne

read -p "please input a digit:" n
#n2=`echo $n|grep -c '[^0-9]'`
#n1=$[$n%2]

#if [ $n2 -eq 1 ]
if echo $n | grep -q '[^0-9]'
then
echo "你输入的不是数字,请重新输入"
exit 1
fi

n1=$[$n%2]

#if例子3
if [ $n1 -eq 0 ]
#if(($n1==0))
then
echo "输入的是偶数"
else
echo "输入的是基数"
fi

#for循环例子1
#while read line
for i in `cat ip.txt`
do
echo -e "\033[32m scp -r /root/learing/t8.sh root@$i:/tmp \033[0m"
done

#for循环例子2
pfile=`find . -name "*.sh"|tail -2`
for i in `$pfile`
do
tar -czvf 2016-07-22.tar.gz $i
done

#for循环例子3
j=0
for((i=1;i<=100;i++))
do
j=`expr $i + $j`
done
echo $j

#for循环例子4
for ip in `cat ip.txt`
do
echo $ip
./rsync.expect $ip ip.txt
done

#for循环例子5
sum=0
for i in `seq 1 100`
do
sum=$[$sum+$i]
echo $i
done;
echo $sum

#for循环例子6
for f in `ls /etc/`
do
if [ -d /etc/$f ]
then
ls -d /etc/$f
#echo "/etc/$f"
fi
done;

#for循环例子7
n=`wc -l passwd |awk '{print $1}'`
for i in `seq 1 $n`;
do
sed -n "$i"p passwd;
done

#if while循环例子
FILES=$*
if [ -z $* ];
then
echo -e "\033[32m{usage:$0 /boot|/tmp|/tmp/test.txt}\033[0m"
exit
fi

for i in `echo 192.168.204.129 127.0.0.1`
do

scp -r $FILES root@$i:/root/install

done

#while循环例子1
i=0
#while [ $i -lt 5 ]
while [[ $i<5 ]]
do
echo "$i"
((i++))
done

#while循环例子2
while :
do
read -p "请输入:" n
if [ -z $n ]
then
echo "需要输入内容:"
continue
fi

n1=`echo $n|sed 's/[0-9]//g'`

if [ ! -z $n1 ]
then
echo "需要输入数字:"
continue
fi

break
done
echo $n

#while循环例子3
while :
do
load=`w|head -1|awk -F 'load average: ' '{print $2}'|cut -d'.' -f1`
if [ $load -gt 10 ]
then
top|mail -s "load is high:$load" load@163.com
fi
sleep 30
done

#while循环例子4
while read line
do
echo -e "\033[32m scp -r /root/learing/t8.sh root@$line:/tmp \033[0m"
done < ip.txt

#while循环例子5
while read line
do
echo $line
done </etc/hosts

#if case 循环例子1
read -p "Please input a Number:" n
n1=`echo $n|sed 's/[0-9]//g'`

if [ ! -z $n1 ]
then
echo "Please input a Number."
exit 1
elif [ $n -lt 0 ] || [ $n -gt 100 ]
then
echo "The number ranger is 0-100"
exit 1
fi

n2=$[$n%2]

case $n2 in
0)
echo "偶数"
;;
1)
echo "奇数"
;;
*)
echo "Please input a Number."
;;
esac

Linux shell例子的更多相关文章

  1. Linux Shell 截取字符串

    Linux Shell 截取字符串 shell中截取字符串的方法很多 ${var#*/} ${var##*/} ${var%/*} ${var%%/*} ${var:start:len} ${var: ...

  2. Linux Shell 重定向与管道【转帖】

    by 程默 在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以 ...

  3. Linux Shell中单引号、双引号、反引号的区别【转载】

    linux shell可以识别4种不同类型的引字符号: 单引号字符' 双引号字符" 反斜杠字符\ 反引号字符` 1. 单引号 ( '' )# grep Susan phonebook Sus ...

  4. Linux Shell 文本处理工具集锦 zz

    内容目录: find 文件查找 grep 文本搜索 xargs 命令行参数转换 sort 排序 uniq 消除重复行 用tr进行转换 cut 按列切分文本 paste 按列拼接文本 wc 统计行和字符 ...

  5. Linux Shell 文本处理工具集锦

    本文将介绍Linux下使用Shell处理文本时最常用的工具:find.grep.xargs.sort.uniq.tr.cut.paste.wc.sed.awk:提供的例子和参数都是最常用和最为实用的: ...

  6. Linux Shell脚本入门--cut命令

    Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields &l ...

  7. linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例 --转载

    http://www.cnblogs.com/chengmo/archive/2010/10/14/1851434.html nux shell有一套自己的流程控制语句,其中包括条件语句(if),循环 ...

  8. Linux Shell系列教程之(十七) Shell文件包含

    本文是Linux Shell系列教程的第(十七)篇,更多Linux Shell教程请看:Linux Shell系列教程 通过文件包含,可以引用其他文件的内容,也可以将复杂内容分开,使程序结构更加清晰. ...

  9. Linux Shell系列教程之(十六) Shell输入输出重定向

    本文是Linux Shell系列教程的第(十六)篇,更多Linux Shell教程请看:Linux Shell系列教程 Shell中的输出和输入的重定向是在使用中经常用到的一个功能,非常实用,今天就为 ...

随机推荐

  1. hibernate VS mybatis

    1: 一般来说,业务逻辑比较简单,集增删改查就可以满足需求,建议使用hibernate,而复杂的业务逻辑,尤其是多表关联查询,建议使用mybatis. 2: hibernate有更好的二级缓存机制,可 ...

  2. Unity4.0配置

    关于Unity4.0的使用: 一 安装Unity 在程序包管理器控制台输入命令:Istall-Pckage unity.mvc安装后会在App_Start中生成UnityConfig.cs 和Unit ...

  3. Android开发---开发文档翻译

    2014.11.24 1:ClipData类:用于表示剪切的数据,此剪切的数据可以是复杂类型,包括一个或多个条目实例 (1)基础知识 >公共类:public class >嵌套类:Clip ...

  4. Visual Studio 2017 本地调试 Chrome浏览器自动退出

    在使用VS 2017(15..6 .15.7)对.NET Core MVC应用程序进行本地调试的时候,选择使用Chrome浏览器.但输入中文 就自动关闭Chrome浏览器,随后结束调试.但复制.粘贴中 ...

  5. 2.7 HBase架构深入剖析

    一. 1.client 整个HBase集群的访问入口: 使用HBase RPC机制与HMaster和HRegionServer进行通信: 与HMaster进行通信进行管理类操作: 与HRegionSe ...

  6. 1.9 Hive常见属性配置

    一.Hive数据仓库位置配置 1. # Hive数据仓库位置配置: 默认位置(hive根目录): /user/hive/warehouse 注意事项: *在仓库目录下,没有对默认的数据库default ...

  7. Flutter实战视频-移动电商-35.列表页_上拉加载更多制作

    35.列表页_上拉加载更多制作 右侧列表上拉加载配合类别的切换 上拉加载需要一个page参数,当点击大类或者小类的时候,这个page就要变成1 provide内定义参数 首先我们需要定义一个page的 ...

  8. UVa 242 Stamps and Envelope Size (无限背包,DP)

    题意:信封上最多贴S张邮票.有N个邮票集合,每个集合有不同的面值.问哪个集合的最大连续邮资最 大,输出最大连续邮资和集合元素. 最大连续邮资是用S张以内邮票面值凑1,2,3...到n+1凑不出来了,最 ...

  9. dead code 死代码 无作用的代码

               DatasetVector datasetvector=(DatasetVector)dataset;           if (datasetvector == null) ...

  10. 线程通讯--BlockingQueue

    Producer线程 package com.thread.communication.blockingqueue; import java.util.concurrent.BlockingQueue ...