shell for循环

Shell变量概述

好久不见. 提交于 2019-12-01 17:07:22
目录 1. Shell变量概述 1.定义变量,变量名=变量值。不能出现"-横杠"命令 2.引用变量,$变量名 3.查看变量,set显示所有变量,包括自定义变量和环境变量 4.取消变量,作用范围:仅在当前Shell中有效。 5.注意事项,引用变量时注意事项,单双引号和不加引号的区别。 注意: 2.执行结果如下: 3.这里需要注意 $*和$@的区别 执行结果如下: 自定义变量运算 命令的嵌套使用,使用$($()) 2. Shell变量赋值 echo命令输出颜色。 3. Shell变量替换 4. Shell变量运算 5. Shell变量案例 1. Shell变量概述 1. 什么是变量 变量是Shell传递数据的一种方法,简单理解:用一个固定的字符串去表示不固定的内容,便于后续引用。 2.变量命令规范 变量定义时名称有要求:字母、数字、下划线几个组成,尽量字母开头,变量名最好具备一定的含义。 ip=10.0.0.100 ip1=10.0.0.100 Hostname_Ip=10.0.0.100 hostname_IP=10.0.0.100 等号是赋值,需要注意:等号两边不能有空格,其次定义的变量不要与系统命令出现冲突。 3. Shell变量定义的方式 01)用户自定义变量:人为定义的变量名称。 02)系统环境变量:保存的是和系统操作环境相关的数据。 03)位置参数变量:向脚本中进行参数传递

shell脚本3

こ雲淡風輕ζ 提交于 2019-11-30 23:27:59
一、安装基本环境(跟据实际情况添加修改) #!/bin/bash yum install -y lrzsz bash-completion wget vim echo "安装完成" rm -rf /etc/yum.repos.d/* wget http://mirrors.aliyun.com/repo/Centos-7.repo -O /etc/yum.repos.d/CentOS-Base.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum makecache echo "yum finish" sed -ri '/^#UseDNS/cUseDNS no' /etc/ssh/sshd_config sed -ri '/SELINUX=enforcing/cSELINUX=disabled' /etc/selinux/config systemctl stop fireawlld systemctl disable firewalld echo "selinux finish" 二、打印等腰三角形、直角三角形、倒直角三角形、菱形 #!/bin/bash # 等腰三角形 read -p "Please input the length: " n for i in

Shell的 for 循环小例子

陌路散爱 提交于 2019-11-30 22:21:12
上例子 for i in f1 f2 f3; do @echo $i; done 执行结果: f1 f2 f3 但是,请注意:如果是在makefile 中写,要写成这个样子: all: for i in f1 f2 f3; do\ @echo $$i; \ done 如果 @echo $$i; 后面没有反斜线,则会出现: /bin/sh: -c:行3: 语法错误: 未预期的文件结尾 这是因为如果是如下: all:   for i in f1 f2 f3; do\     @echo $$i;   done 会被认为 没有 done, 要么要在 @echo $$i;后加反斜线表示shell代码尚未结束, 要么就写成如下的一行: all:   for i in f1 f2 f3; do\     @echo $$i; done 或者干脆: all:   for i in f1 f2 f3; do @echo $$i; done 来源: https://www.cnblogs.com/lelin/p/11642906.html

shell入门

此生再无相见时 提交于 2019-11-30 21:59:18
输出环境变量 echo $PATH shell脚本执行需要给与权限 chmod +x chmod u+x chmod a+x 使用bash + 脚本,则不需要执行权限 变量赋值“=”两边不可有空格 将命令值赋予变量 A= date B=$(lS -l) B=${lS -l} 列出所有变量 set set | grep 变量名 单引号、双引号区别 单引号内容原封不动输出 双引号取消了空格的作用,特殊符号含义保留 删除变量 unset变量名 特殊变量 位置变量:$N来表示,$0表示文件名,$n表示第n个参数值 特殊变量:$* 程序所有参数 $# 参数个数 $$ 当前程序的PID $! 执行上一个后台指令的PID $? 执行上一个指令的返回值 read命令:从键盘读取数据赋予变量 expr命令: 整数型算数运算 语法expr 表达式 #运算符之间必须空格 ··· expr 3 + 5 a=10 b=20 expr $a / $b #/是整除 expr $a * $b #*是特殊字符,需要转义 expr $a / $b / expr $a * $b ··· 变量测试语句 test 测试条件 或使用[测试条件]来省略test 测试条件:变量、字符串、整数、文件 流程控制 if语法: ··· if 条件 then 语句 fi ··· 扩展:使用;可以把命令写在一行,互不影响与$$不同 ···

6-2 shell编程基础

本小妞迷上赌 提交于 2019-11-30 18:54:08
shell编程基础 编程基础 Linus:Talk is cheap, show me the code 程序和编程风格 程序: 程序:算法+数据结构 数据:是程序的核心 算法:处理数据的方式 数据结构:数据在计算机中的类型和组织方式 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 程序的执行方式 计算机:运行二进制指令 编程语言:人与计算机之间交互的语言 低级编程语言: 机器:二进制的0和1的序列,称为机器指令。与自然语言差异太大,难懂、难写 汇编:用一些助记符号替代机器指令,称为汇编语言,如: ADD A,B 将寄存器A的数与寄存器B的数相加得到的数放到寄存器A中 汇编语言写好的程序需要汇编程序转换成机器指令 汇编语言稍微好理解,即机器指令对应的助记符,助记符更接近自然语言 高级编程语言: 编译:高级语言-->编译器-->机器代码-->执行:C,C++ 解释:高级语言-->执行-->解释器-->机器代码:shell,python,php,JavaScript,perl 编程逻辑处理方式 顺序执行 选择执行 循环执行 编程基本结构 shell编程:过程式、解释执行 编程语言的基本结构: 各种系统命令的组合 数据存储:变量、数组 表达式:a + b 语句:if shell脚本基础 shell脚本:

shell --Day 6

橙三吉。 提交于 2019-11-30 13:31:32
脚本参数交互与for语句循环 1、脚本参数交互 $n $1 $2 ...${10} ${11}...//传参,通过这些传参我们可以将相关的参数输入到脚本中去。 read命令实现脚本参数输入: read语句可以多个参数同时输入,如果变量个数多于输入的数值,就把最后多余的数值赋值给最后一个变量。 例:read a b c [root@lsl ~]# read a b c 1、-p可以指定输入提示文本 [root@lsl ~]# vi b.sh #!/bin/bash # read -p "请输入要查看的内容:" a echo $a 2、设置超时时间 [root@lsl ~]# vi b.sh #!/bin/bash # read -t 5 -p "请输入要查看的内容:" a //设置超时时间为5s,5s后自动退出 echo $a 此时未输入任何内容,5s后退出。 3、需要给read指定的变量,提供默认值 [$? -eq 0] && exit 0 || exit 1 练习:输入一个设备文件,输出这个设备文件的基本信息 #!/bin/bash # cat << EOF 请输入正确的信息如:sda |sdb|sda1 EOF read -t 5 -p "请输入设备文件名:" DiskName [ ! $? -eq 0 ] && echo "请输入正确的信息" && exit 1 if [

shell编程题(二)

别说谁变了你拦得住时间么 提交于 2019-11-30 08:13:55
计算1-100之和 #!/bin/bash sum=0 for i in `seq 1 100`;do #符号不是单引号 是 1左边的符号 sum=$[$i + $sum ] done echo $sum #!/bin/bash i=0 n=1              #定义循环变量 while [ $n -lt 101 ];do  #循环变量小于101 i=$(( $i + $n))        #累加 n=$(( $n + 1)) done echo $i #!/bin/bash i=100 a=1 until [ $i -le 1 ]; # -le == less than 定义 i <= 1 为假时执行 do a=$(( $a + $i )) i=$(( $i - 1 )) done echo $a -eq(等于) -ne(不等于) -lt(小于) -le(小于等于) -gt(大于) -ge(大于等于) 来源: https://www.cnblogs.com/wanghao-boke/p/11574804.html

linux中的sh、dash、bash的区别

本秂侑毒 提交于 2019-11-30 02:51:24
一、常见shell类型 1. Bourne shell (sh) UNIX 最初使用,且在每种 UNIX 上都可以使用。在 shell 编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种shell。 2. C shell (csh) csh, the C shell, is a command interpreter with a syntax similar to the C programming language.一个语法上接近于C语言的shell。 3. Korn shell (ksh) 完全向上兼容 Bourne shell 并包含了 C shell 的很多特性。 4. Bourne Again shell (bash) 因为Linux 操作系统缺省的 shell。即 bash 是 Bourne shell 的扩展,与 Bourne shell 完全向后兼容。在 Bourne shell 的基础上增加、增强了很多特性。可以提供如命令补全、命令编辑和命令历史表等功能。包含了很多 C shell 和 Korn shell 中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。 5. Debian Almquist Shell(dash) 原来bash是GNU/Linux 操作系统中的 /bin/sh 的符号连接,但由于bash过于复杂,有人把 bash 从

Shell脚本应用 – for、while循环语句

梦想与她 提交于 2019-11-29 23:27:18
通过 Shell 脚本 应用(二)学习到了if条件条件语句的使用方法等。 Shell 作为一种 脚本 编程语言,同样了包含了循环,分支等其他程序控制结构,从而能够轻松完成更加复杂、强大的功能。我们今天就来认识for、while、case语句的具体应用。 一、for循环语句 在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的对象不一样,其他 命令 相同。例如:根据通讯录中的姓名列表创建系统账号等情况。 当面对各种列表重复工作任务时,使用if语句已经不能满足需要了,就需要使用到for语句。 1.for语句结构 使用for循环语句时,需要指定一个变量及可能的取值列表,针对不同的取值重复执行相同的 命令 序列,知道变量值用完退出循环。 1)for循环语句的语法结构: for 变量名 in 取值列表 do 命令序列 done 语句结构中,for语句的操作对象为用户吧指定名称的变量,并通过in关键字为该变量预先设置了一个取值列表,多个取值之间用空格进行分隔。位于do……done之间的命令序列称为循环体,其中的执行语句需要应用变量以完成相应的任务。 2)for循环语句流程图 3)for循环语句的使用场景 1. 循环次数未知; 2.完整遍历整个取值列表。 2.for语句应用示例 要求: 1.根据姓名列表批量创建用户; 2.用户的初始密码是“123456” 实施步骤:

Shell脚本应用 – for、while循环语句

偶尔善良 提交于 2019-11-29 21:47:54
通过 Shell 脚本 应用(二)学习到了if条件条件语句的使用方法等。 Shell 作为一种 脚本 编程语言,同样了包含了循环,分支等其他程序控制结构,从而能够轻松完成更加复杂、强大的功能。我们今天就来认识for、while、case语句的具体应用。 一、for循环语句 在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的对象不一样,其他 命令 相同。例如:根据通讯录中的姓名列表创建系统账号等情况。 当面对各种列表重复工作任务时,使用if语句已经不能满足需要了,就需要使用到for语句。 1.for语句结构 使用for循环语句时,需要指定一个变量及可能的取值列表,针对不同的取值重复执行相同的 命令 序列,知道变量值用完退出循环。 1)for循环语句的语法结构: for 变量名 in 取值列表 do 命令序列 done 语句结构中,for语句的操作对象为用户吧指定名称的变量,并通过in关键字为该变量预先设置了一个取值列表,多个取值之间用空格进行分隔。位于do……done之间的命令序列称为循环体,其中的执行语句需要应用变量以完成相应的任务。 2)for循环语句流程图 3)for循环语句的使用场景 1. 循环次数未知; 2.完整遍历整个取值列表。 2.for语句应用示例 要求: 1.根据姓名列表批量创建用户; 2.用户的初始密码是“123456” 实施步骤: