shell for循环

shell脚本编程基础之for循环

妖精的绣舞 提交于 2019-12-09 22:50:52
循环结构 循环需要有进入条件和退出条件,如果没有退出条件,则就会一直循环下去 for 变量 in 列表;do 循环体 done 生成列表及示例 {1..100}:生成1到100的整数列表 `command`:使用命令生成列表 Example1: #!/bin/bash for i in /data/*;do echo "$i" done for循环可以对目录下的文件列表进行循环;如果目录下有三个文件,则执行三次循环;如果/data/下有文件f1.txt,则i的值就为/data/f1.txt Example2: #!/bin/bash # declare -i SUM=0 #指明SUM变量是一个整数型变量;变量的值为整数;指定求和变量的初始值为0 for I in {1..100};do let SUM=$[$SUM+$I] #指定SUM变量是一个整数型变量 done echo "the sum number is: $SUM" 把列表里面的1赋值给变量I,SUM变量的初始值为0,所以SUM变量的值为$SUM+$I,SUM=0+1=1;当I=2时,SUM的值为$SUM+$I=1+2=3,以此类推,退出循环的条件为I为100时,列表已经没有元素,退出循环,最后打印SUM的值,从1+2+3..100 Example3: #!/bin/bash declare -i SUM=0

通过shell脚本 批量添加用户

北城以北 提交于 2019-12-09 13:34:15
有一个朋友问我如何批量创建用户和设置密码 ,我就简单给他写了两个 脚本 ,让他自己参考下并自己根据实际情况进行修改,毕竟他需要的用户名和密码都是实际生产环境的。 这里分两种情况,一种是测试for循环批量添加用户,一个是根据实际生产环境进行批量添加。分别写一下案例如下: for添加指定类型用户以及设置随机密码 脚本 作用:批量添加user1-10用户并设置随机8位数随机密码 #!/bin/bash #test add user and set passwd for n in `seq 10` do useradd user$n; echo user$n |passwd `echo user$n |md5sum |cut -c1-8` done 实际生产环境批量添加用户和设置对应密码 脚本作用:在生产环境中批量添加指定用户、设置对应密码,并禁止sudo -s、sudo -i切换到root。 思路:将所有要添加的用户名和密码放到一个数组中,设置一个函数进行截取用户名和密码并进行添加用户、设置密码。最后用一个循环调用这个函数即可添加。 #!/bin/bash #adduser and set passwd userlist=( user21:123456 user22:456789 user23:876543 ) function adduser_setpasswd_sudo(){

Linux shell脚本

◇◆丶佛笑我妖孽 提交于 2019-12-08 20:39:29
1 Shell脚本是什么、它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成这些日常工作任务。 2 什么是默认登录shell,如何改变指定用户的登录shell 答:在Linux操作系统,“/bin/bash”是默认登录shell,是在创建用户时分配的。使用chsh命令可以改变默认的shell。示例如下所示: 3 可以在shell脚本中使用哪些类型的变量? 答:在shell脚本,我们可以使用两种类型的变量: 系统定义变量 用户定义变量 系统变量是由系统系统自己创建的。这些变量通常由大写字母组成,可以通过“ set ”命令查看。 用户变量由系统用户来生成和定义,变量的值可以通过命令“ echo $<变量名> ”查看。 4 如何将标准输出和错误输出同时重定向到同一位置? 答:这里有两个方法来实现: 方法一: 2>&1 (# ls /usr/share/doc > out.txt 2>&1 ) 方法二: &> (# ls /usr/share/doc &> out.txt ) 5 shell脚本中“if”语法如何嵌套? 答:基础语法如下: 6 shell脚本中“$?”标记的用途是什么? 答:在写一个shell脚本时,如果你想要检查前一命令是否执行成功

Unix系列shell程序编写从入门到精通(下)

落爺英雄遲暮 提交于 2019-12-07 10:21:38
Until语句 While语句中,只要某条件为真,则重复执行循环代码,until语句正好同while相反,该语句使循环代码重复执行,直到遇到某一条件为真才停止。 Until语句的结构如下: until command do command command … … done 可以用until语句替换上面备份程序的while语句,完成同样的功能: until [ $ANS != Y -a $ANS != y ] for 循环 在介绍for循环之前,我们要学个非常有用的unix命令:shift。我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当Shell程 序不知道其个数时,可以把所有参数一起赋值给变量$*。若用户要求Shell在不知道位置变量个数的情况下,还能逐个的把参数一一处理,也就是在$1后 为$2,在$2后面为$3等。在 shift命令执行前变量$1的值在shift命令执行后就不可用了。 示例如下: #测试shift命令(x_shift.sh) until [ $# -eq 0 ] do echo "第一个参数为: $1 参数个数为: $#" shift done 执行以上程序x_shift.sh: $./x_shift.sh 1 2 3 4 结果显示如下: 第一个参数为: 1 参数个数为: 3 第一个参数为: 2 参数个数为: 2 第一个参数为: 3 参数个数为:

shell脚本

你说的曾经没有我的故事 提交于 2019-12-07 09:33:33
第 1 章 Shell 概述 第 2 章 Shell 解析器 ( 1 ) Linux 提供的 Shell 解析器有: [atguigu@hadoop101 ~]$ cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/dash /bin/tcsh /bin/csh ( 2 ) bash 和 sh 的关系 [atguigu@hadoop101 bin]$ ll | grep bash -rwxr-xr-x. 1 root root 941880 5 月 11 2016 bash lrwxrwxrwx. 1 root root 4 5 月 27 2017 sh -> bash ( 3 ) Centos 默认的 解析 器 是bash [atguigu@hadoop102 bin]$ echo $SHELL /bin/bash 第 3 章 Shell 脚本 入门 1 . 脚本格式 脚本以 #!/bin/bash 开头 (指定解析 器 ) 2 . 第一个 Shell 脚本 :helloworld ( 1 )需求:创建一个 Shell 脚本,输出 helloworld ( 2 ) 案例 实操: [atguigu@hadoop101 datas]$ touch helloworld.sh [atguigu@hadoop101 datas]$

shell脚本编程基础之for循环

*爱你&永不变心* 提交于 2019-12-07 09:14:30
循环结构 循环需要有进入条件和退出条件,如果没有退出条件,则就会一直循环下去 for 变量 in 列表;do 循环体 done 生成列表及示例 {1..100}:生成1到100的整数列表 `command`:使用命令生成列表 Example1: #!/bin/bash # declare -i SUM=0 #指明SUM变量是一个整数型变量;变量的值为整数;指定求和变量的初始值为0 for I in {1..100};do let SUM=$[$SUM+$I] #指定SUM变量是一个整数型变量 done echo "the sum number is: $SUM" 把列表里面的1赋值给变量I,SUM变量的初始值为0,所以SUM变量的值为$SUM+$I,SUM=0+1=1;当I=2时,SUM的值为$SUM+$I=1+2=3,以此类推,退出循环的条件为I为100时,列表已经没有元素,退出循环,最后打印SUM的值,从1+2+3..100 Example2: #!/bin/bash declare -i SUM=0 declare -i SUMS=0 for i in {1..10};do NUM=$[$i%2] if [ $NUM -eq 0 ];then let SUM=$[$SUM+$i] else let SUMS=$[$SUMS+$i] fi done echo "even is:

Unix系列shell程序编写从入门到精通(上)

心不动则不痛 提交于 2019-12-06 18:31:03
*Shell 是什么 ? 任何发明都具有供用户使用的界面。 UNIX 供用户使用的界面就是 Shell(DOS 的 command 熟悉吧,但 UNIX 的要强大的多 ) 。 Shell 为用户提供了输入命令和参数并可得到命令执行结果的环境。 为了不同的需要, UNIX 提供了不同的 Shell 。现在的 UNIX 大部分都支持 BourneShell ,以下教程就以 BourneShell(Bsh) 为例,一步步的领略 UNIX Shell 的强大功能,占先其强大魅力,达到更方便灵活的管理、应用 UNIX 的目的。 1.UNIX 内核和 Shell 的交互方法 启动 UNIX 时,程序 UNIX( 内核 ) 将被调入计算机内存,并一直保留在内存中直到机器关闭。在引导过程中,程序 init 将进入后台运行一直到机器关闭。该程序查询文件 /etc/inittab ,该文件列出了连接终端的各个端口及其特征。当发现一个活动的终端时, init 程序调用 getty 程序在终端上显示 login 等登陆信息。 (username 和 passwd) ,在输入密码后, getty 调用 login 进程,该进程根据文件 /etc/passwd 的内容来验证用户的身份。若用户通过身份验证, login 进程 把用户的 home 目录设置成当前目录并把控制交给一系列 setup 程序。

shell脚本简单例子

和自甴很熟 提交于 2019-12-06 04:22:06
eg: Expect: 1.用环境变量RANDOM随机生成一个100以内的随机数 2.read读取当前输入 3.当前输入对比随机生成的数 4.当两个数相等时跳出苏循环,并计数(比较n次结果才相等) 1 #!/bin/bash 2 i=0 3 num=$(expr $RANDOM % 100) 4 echo $num 5 while true 6 do 7 let i++ 8 read -p "Please input number(1-100):" digit 9 if [ $digit -eq $num ]; then 10 echo $digit 11 echo "一共$i 次!!" 12 break 13 elif [ $digit -lt $num ]; then 14 echo "The number is less!" 15 elif [ $digit -gt $num -o $digit -gt 100 ]; then 16 echo "The number is bigger" 17 #elif [ $digit -gt 100 ]; then 18 # echo "not in the range!! Please reinput." 19 else 20 continue 21 fi 22 done eg: 复习简单实例 , 简单输入n次要取得值

shell

試著忘記壹切 提交于 2019-12-06 02:06:52
shell是用户使用 Linux 的桥梁 1.第一个shell语言 新增一个a.sh文档 内容: #!/bin/sh myUrl="hello" echo $myUrl 运行:chmod +x ./a.sh ./a.sh 2.shell的循环 #!/bin/sh for skill in Tom THY Marry demo ;do echo "I am ${skill}" done 运行 来源: https://www.cnblogs.com/520502-thy/p/11956081.html

Shell能做什么

前提是你 提交于 2019-12-05 20:05:12
shell概览 一、shell能做什么 1.自动化系统初始化(update,软件安装,时区设置,安全策略...) 2.自动化批量软件部署程序(LAMP/LNMP/Tomcat/Nginx) 3.管理应用程序(KVM,集群管理扩容,MySQL,DELLR720批量RAID) 4.日志分析处理程序(PV,UV,200,!200,top100,grep/awk) 5.自动化备份恢复程序(MySQL完全备份/增量+Crond) 6.自动化管理程序(批量远程修改密码,软件升级,配置更新) 7.自动化信息采集及监控程序(收集系统/应用状态信息,CPU,Mem,Disk,Net,TCP Status,Apache,MySQL) 8.配合Zabbix信息采集(收集系统/应用状态信息,CPU,Mem,Disk,Net,TCP Status,Apache,MySQL) 9.自动化扩容(增量云主机——>业务上线) zabbix监控CPU 80%+|-50% Python API AWS/EC2(增加/删除云主机)+Shell Script(业务上线) 10.俄罗斯方块,打印三角形,打印圣诞树,打印五角星,运动的小火车,坦克大战,排序算法实现 11.Shell理论上将可以做任何事(一切取决业务需求) 程序语言执行: C —— 编译 —— 二进制机器码(CPU可以直接执行,不用再处理,x86复杂指令集