Shell Script:
================================================================

示例1:
[root@server0 ~]# vim ping_test.sh
#!/bin/bash
#v1.0
ping -c1 172.25.0.10 &>/dev/null
if [ $? -eq 0 ];then
echo "host 172.25.0.10 is up."
else
echo "host 172.25.0.10 is down."
fi
[root@server0 ~]# chmod a+x ping_test_1.sh

示例2:
#!/bin/bash
#v2.0
host=172.25.0.19
ping -c1 $host &>/dev/null
if [ $? -eq 0 ];then
echo "host $host is up."
else
echo "host $host is down."
fi

示例3:
#!/bin/bash
#v3.0
read -p "请输入测试的IP: " host
ping -c1 $host &>/dev/null
if [ $? -eq 0 ];then
echo "host $host is up."
else
echo "host $host is down."
fi

示例4:
#!/bin/bash
#v4.0
ping -c1 $1 &>/dev/null
if [ $? -eq 0 ];then
echo "host $1 is up."
else
echo "host $1 is down."
fi
[root@server0 ~]# ./ping_test_1.sh 172.25.0.10

示例5:
[root@foundation0 ~]# vim for_ping.sh
#!/bin/bash
for i in {1..254}
do
ping -c1 172.25.254.$i &>/dev/null
if [ $? -eq 0 ];then
echo "172.25.254.$i is up."
else
echo "172.25.254.$i is down" >> down.list
fi
done

示例6:
#!/bin/bash
for i in {1..254}
do
(ping -c1 172.25.254.$i &>/dev/null
if [ $? -eq 0 ];then
echo "172.25.254.$i is up."
else
echo "172.25.254.$i is down" >> down.list
fi)&
done

===条件测试===
man test
1. 文件测试
[ -d dir ]
[ -f file ]
[ -r file ]
[ -x file ]
[ ! -d dir ]

2. 整数比较
[ 2 -eq 2 ]
[ 2 -ge 3 ]
[ 2 -gt 3 ]
[ 2 -le 3 ]
[ 2 -lt 3 ]
[ 2 -ne 3 ]

3. 字符串比较
[ aaa = aaa ]
[ aaa != aaa ]
[ ! aaa = aaa ]
[root@foundation0 ~]# name1=
[root@foundation0 ~]# name2=tianyun
[root@foundation0 ~]# echo ${#name1}
0
[root@foundation0 ~]# echo ${#name2}
7

# [ "$USER" = root ]; echo $?
# [ "$USER" != alice ]; echo $?
# [ -z "$name1" ];echo $?
# [ -z "$name2" ];echo $?
# [ -n "$name1" ];echo $?
# [ -n "$name2" ];echo $?

字符串比较,变量加双引号

示例7:
#!/bin/bash
#if/else
read -p "请输入一个数值: " var1
if [ $var1 -eq 1000 ];then
echo "你输入的是1000"
elif [ $var1 -eq 2000 ];then
echo "你输入的是2000"
elif [ $var1 -eq 3000 ];then
echo "你输入的是3000"
elif [ $var1 -eq 4000 ];then
echo "你输入的是4000"
elif [ $var1 -eq 5000 ];then
echo "你输入的是5000"
else
echo "你输入的不正确."
fi

示例8:
#!/bin/bash
#case
read -p "请输入一个数: " num
case "$num" in
1000)
echo "你输入的是1000"
;;
2000)
echo "你输入的是2000"
;;
3000)
echo "你输入的是3000"
;;
*)
echo "你输入的不正确!"
;;
esac

示例9:
1. 通过给定的文件批量创建用户,密码为123, shell为/sbin/nologin
2. 脚本必须能判断给定的文件是否存在,且是文件
3. 脚本必须能判断脚本运行时是否有参数
4. 脚本为/root/useradd.sh

[root@foundation0 ~]# vim /root/useradd.sh
#!/bin/bash
#useradd
if [ $# -eq 0 ];then
echo "你没有输入任何文件,程序退出!"
exit 1
fi

if [ ! -f $1 ];then
echo "你输入的是不是文件,程序退出!"
exit 2
fi

for user in `cat $1`
do
useradd -s /sbin/nologin $user
echo 123 |passwd $user --stdin &>/dev/null
if [ $? -eq 0 ];then
echo "用户${user}创建成功."
fi
done

[root@foundation0 ~]# chmod a+x /root/useradd.sh

[root@foundation0 ~]# cat user.txt
yy1
yy2
uu8
ii9
cc10

[root@foundation0 ~]# /root/useradd.sh user.txt
用户yy1创建成功.
用户yy2创建成功.
用户uu8创建成功.
用户ii9创建成功.
用户cc10创建成功.

自动添加用户的脚本
#! /bin/bash
if [ $# -eq 0 ];then
echo "no can shu"
elif [ ! -f $1 ];then
echo "no file "
else
for user in `cat userlist`
do
id $user &> /dev/null
if [ $? -eq 0 ];then
echo "this user exit"
else
useradd -s /sbin/nologin $user
echo "123456" | passwd $user --stdin
fi
done
fi

scripts的更多相关文章

  1. SQLMap Tamper Scripts Update 04/July/2016

    SQLMap Tamper Scripts Update apostrophemask.py Replaces apostrophe character with its UTF-8 full wid ...

  2. CS0103: The name ‘Scripts’ does not exist in the current context解决方法

    转至:http://blchen.com/cs0103-the-name-scripts-does-not-exist-in-the-current-context-solution/ 更新:这个bu ...

  3. npm Scripts使用教程【译】

    Why npm Scripts? 原文发表于 2016.2.12,原文地址: https://css-tricks.com/why-npm-scripts/ 以下是访客Damon Bauer发布的一篇 ...

  4. Security Configuration and Auditing Scripts for Oracle E-Business Suite (文档 ID 2069190.1)

    This document provides the security configuration and auditing scripts for Oracle E-Business Suite. ...

  5. Nancy Scripts,CSS文件夹配置

    public class Bootstrapper : DefaultNancyBootstrapper { protected override void ConfigureConventions( ...

  6. phpMyadmin /scripts/setup.php Execute Arbitrary PHP Code Via unserialize Vul Object Injection PMASA-2010-4

    目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 对这个漏洞简单的概括如下 . "/scripts/setup.php&q ...

  7. phpMyadmin /scripts/setup.php Execute Arbitrary PHP Code Via A Crafted POST Request CVE-2010-3055

    目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 The configuration setup script (aka scrip ...

  8. ASP.NET MVC 4 RC的JS/CSS打包压缩功能 Scripts.Render和Styles.Render

    打包(Bundling)及压缩(Minification)指的是将多个js文件或css文件打包成单一文件并压缩的做法,如此可减少浏览器需下载多个文件案才能完成网页显示的延迟感,同时通过移除JS/CSS ...

  9. mvc中Scripts.Render、Styles.Render

    一.配置BundleConfig.cs文件 1.首先要在App_Start 里面BundleConfig.cs 文件里面 添加要包含的css文件 2.BundleConfig就是一个微软新加的 一个打 ...

  10. shell scripts

    本文涉及的命令:test.[].shift.if.case.for.while.until.function.sh. 撰写 shell script 的良好习惯 在每个 script 的文件头处记录好 ...

随机推荐

  1. mstsc远程桌面全频或自定义窗口

    近期发现自己的mstsc突然窗口变小,总是要繁琐的拖来拖去,现终于解决了,拿来分享一二! 参数一:mstsc /f   以全屏模式显示(操作一次,后面无需在设置,具体何原因要问微软了,可能是机器的分辨 ...

  2. COGS 750. 栅格网络流

    ★★☆   输入文件:flowa.in   输出文件:flowa.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] Bob 觉得一般图的最大流问题太难了,他不知道如何解决 ...

  3. 汶川大地震中的SAP成都研究院

    5·12汶川地震,发生于北京时间(UTC+8)2008年5月12日(星期一)14时28分04秒,此次地震的面波震级 里氏震级达8.0Ms.矩震级达8.3Mw,地震烈度达到11度.地震波及大半个中国及亚 ...

  4. hdu-3549 Flow Problem---最大流模板题(dinic算法模板)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3549 题目大意: 给有向图,求1-n的最大流 解题思路: 直接套模板,注意有重边 传送门:网络流入门 ...

  5. 第六十三课、C语言的异常处理

    http://www.cnblogs.com/gui-lin/p/6379101.html 一.异常处理 1.异常的概念 (1).程序在运行过程中可能产生异常 (2).异常(Exception)和Bu ...

  6. 使用RichTextBox控件保存文件

    实习效果: 知识运用: RichTextBox控件的SaveFile方法 SaveFileDialog对象的ShowDialog方法 实现代码: private void 打开RTF文件ToolStr ...

  7. Debug与Release版本的区别详解

    原文链接 Debug 和 Release 并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动.如果我们愿意,我们完全可以把Debug和Release的行为完全颠 ...

  8. Cobbler自动安装的Linux系统ssh无法进入

    Linux ssh登陆老提示“permission denied,please try again” ,但是iptables已经关掉了 修改/etc/ssh/sshd_config文件.找如下的一句 ...

  9. Activiti学习记录(四)

    1 连线 注意:如果将流程图放置在和java类相同的路径,需要配置: 1.1 部署流程定义+启动流程实例 ProcessEngine processEngine = ProcessEngines.ge ...

  10. Uva 网络(Network,Seoul 2007,LA 3902)

    #include<iostream> #include<cstring> #include<vector> using namespace std; +; int ...