shell for循环

shell脚本 介绍以及总结

旧时模样 提交于 2020-02-16 20:06:47
shell的历史 shell概况 人想要和操作系统进行交互,传送指令给操作系统,就需要使用到shell。宏义的shell是人与机器交互的页面,它分为两种,一种是有界面的,比如GUI,另外一种是没有界面的,完全是指令操作的(CLI)。我们一般说的shell指的就是命令行界面。 Bourne shell 最早Ken Thompson设计Unix的时候,使用的是命令解释器,命令解释器接受用户的命令,然后解释他们并执行。 后来出现了Bourne shell(通称为sh),顾名思义,就是一个叫Bourne shell创建的。对,它就是现在我们机器上面的/bin/sh这个可执行文件。这个老哥创建的sh一直沿用至今,现在的UNIX操作系统都配置有sh,而且各种新的shell都会向后兼容sh的语法。 Bourne shell 带来了: 脚本可以写在文件里被调用,比如sh a.sh可以执行a.sh里面的shell命令 可以交互或者非交互的方式调用 可以同步执行也可以异步执行 支持输入输出的pipeline,就是管道方式 支持输入输出的重定向,就是现在使用的> 和 >> 提供一系列内置命令 提供流程控制基本的函数和结构 弱类型变量,就是可以直接 a=1,不需要指定a为int 提供本地和全局的变量作用域 脚本执行前不需要编译 去掉goto功能 使用``进行命令执行替换 增加了for~do~done的循环

Shell中的循环--for

情到浓时终转凉″ 提交于 2020-02-16 01:13:09
1.C语言中的for循环 for (( exp1 ; exp2 ; exp3 )) do statements done exp1 exp2 exp3 是三个表达式,其中exp2是判断条件,for循环根据exp2的结果来决定是否继续下一次的循环 statements是循环体语句,可以有一条,也可以有多条 do和done是shell中的关键字 执行过程: 先执行exp1 再执行exp2,如果它的判断结果成立,则执行循环体中的语句,否则结束整个循环 执行完循环体再执行exp3 重复执行步骤2和3,知道exp2的判断结果不成立,就结束循环 2.应用 示例1 省略exp1(;不可以省略) 省略exp2 省略exp3 省略1~3 3.Python风格的for in循环 for variable in value_list do statements done variable表示变量 value_list 表示 取值列表 in是shell中的关键字 4.应用 示例1:对数字进行循环 示例2:对字符串进行循环 示例3:{start…end}形式循环 来源: CSDN 作者: Outside! 链接: https://blog.csdn.net/qq_45594312/article/details/104311947

the-art-of-command-line 2019-02-15

末鹿安然 提交于 2020-02-15 18:38:02
命令行的艺术 前言 基础 日常使用 文件及数据处理 系统调试 单行脚本 冷门但有用 仅限 OS X 系统 仅限 Windows 系统 更多资源 免责声明 熟练使用命令行是一种常常被忽视,或被认为难以掌握的技能,但实际上,它会提高你作为工程师的灵活性以及生产力。本文是一份我在 Linux 上工作时,发现的一些命令行使用技巧的摘要。有些技巧非常基础,而另一些则相当复杂,甚至晦涩难懂。这篇文章并不长,但当你能够熟练掌握这里列出的所有技巧时,你就学会了很多关于命令行的东西了。 这篇文章是 许多作者和译者 共同的成果。 这里的部分内容 首次 出现 于 Quora , 但已经迁移到了 Github,并由众多高手做出了许多改进。 如果你在本文中发现了错误或者存在可以改善的地方,请 贡献你的一份力量 。 前言 涵盖范围: 这篇文章不仅能帮助刚接触命令行的新手,而且对具有经验的人也大有裨益。本文致力于做到 覆盖面广 (涉及所有重要的内容), 具体 (给出具体的最常用的例子),以及 简洁 (避免冗余的内容,或是可以在其他地方轻松查到的细枝末节)。在特定应用场景下,本文的内容属于基本功或者能帮助您节约大量的时间。 本文主要为 Linux 所写,但在 仅限 OS X 系统 章节和 仅限 Windows 系统 章节中也包含有对应操作系统的内容。除去这两个章节外,其它的内容大部分均可在其他类 Unix 系统或

shell中的for循环

我的梦境 提交于 2020-02-14 17:49:18
shell中的for循环 文章目录 shell中的for循环 1.C语言风格的for循环 2.C语言风格for循环的例子 3.python风格的for in循环 4.python风格for循环的例子 1.C语言风格的for循环 格式: for ((exp1;exp2;exp3)) do statements done 运行过程: 先执行exp1; 再执行exp2,如果它的判断结果成立,则执行循化体中的语句,否则结束整个for循环; 执行完循环体后再执行exp3; 重复执行步骤2和3,直到exp2的判断结果不成立,就结束循环; 上面的步骤中,第二步和第三步合并在一起算一次循环,会重复执行。for语句的主要作用就是不断执行步骤2和3- 注意: 1.exp1仅在第一次循环时执行,以后都不会再执行。可以认为这是一个初始化语句 2.exp2一般是一个关系表达式,决定了是否有还要继续下次循环,称为“循化条件” 3.exp3很多情况下是一个带有自增或自减运算的表达式,以使循环条件逐渐变得“不成立” 4.for循环中的exp1、exp2、exp3都是可选项,都可以省略,但分号必须保留! for ((初始化语句;判断条件;自增或自减)) 2.C语言风格for循环的例子 例1:计算1到100的和 #!/bin/bash sum=0 for ((i=1;i<=100;i++)) do ((sum +=

shell脚本练习题->1

我的未来我决定 提交于 2020-02-14 10:11:19
猜随机数的大小 描述: 写一个猜数字脚本,当用户输入的数字和预设数字(随机生成一个0-100的数字)一样时,直接退出,否则让用户一直输入:并且提示用户输入的数字比预设数字大或者小 分析: 1:随机数字是如何生成的 2:这是一个死循环,直到猜对了才能退出 3:需要判断大小 脚本实现: [root@jumpserver-70 scripts]# cat num_random.sh #!/bin/bash num=$(echo $(($RANDOM%100+1))) i=0 while true do read -p "请猜一下这个数是多少:" number let i++ if [[ ! $number =~ ^[0-9]+$ ]];then echo "请检查输入的是否为数字" elif [ $number -gt $num ];then echo "你输入的数大了!" elif [ $number -lt $num ];then echo "你输入的数小了- -" else echo "恭喜你!都会抢答了。" echo "你一共猜了 $i 次" exit 1 fi done 实现的效果: [root@jumpserver-70 scripts]# sh num_random.sh 请猜一下这个数是多少:10 你输入的数小了- - 请猜一下这个数是多少:50 你输入的数小了- -

Linux Shell for循环写法总结

青春壹個敷衍的年華 提交于 2020-02-14 08:21:17
关于shell中的for循环用法很多,一直想总结一下,今天网上看到上一篇关于for循环用法的总结,感觉很全面,所以就转过来研究研究,嘿嘿... 1、 for((i=1;i<=10;i++));do echo $(expr $i \* 4);done 2、在shell中常用的是 for i in $(seq 10) 3、for i in `ls` 4、for i in ${arr[@]} 5、for i in $* ; do 6、for File in /proc/sys/net/ipv4/conf/*/accept_redirects; do 7、for i in f1 f2 f3 ;do 8、for i in *.txt 9、for i in $(ls *.txt) for in语句与` `和$( )合用,利用` `或$( )的将多行合为一行的缺陷,实际是合为一个字符串数组 ============ -_- ==============for num in $(seq 1 100) 10、LIST="rootfs usr data data2" for d in $LIST; do 用for in语句自动对字符串按空格遍历的特性,对多个目录遍历 11、for i in {1..10} 12、for i in stringchar {1..10} 13、awk 'BEGIN{for

shell for循环

柔情痞子 提交于 2020-02-14 08:05:53
seq的效果 # seq 1 5 1 2 3 4 5 第一个for脚本 #!/bin/bash # for 操作 for i in `seq 1 5` do echo "num is $i" done 计算1到100的和。 # expr 1 + 100 101 #!/bin/bash # 计算1到100的和 j=0 for i in `seq 1 100` do j=`expr $i + $j` done echo -e "\033[32m 1到100的和为:$j \033[0m"; #!/bin/bash # 计算1到100的和 j=0 for i in {1..100} do j=`expr $i + $j` done echo -e "\033[32m 1到100的和为:$j \033[0m"; #!/bin/bash # 计算1到100的和 j=0 for((i=1;i<=100;i++)) do j=`expr $i + $j` done echo -e "\033[32m 1到100的和为:$j \033[0m"; -x可以查看执行过程。 /bin/bash -x for.sh + BEGIN=1 + END=10 + j=0 + (( i=1 )) + (( i<=10 )) ++ expr 1 + 0 + j=1 + (( i++ )) + (( i<=10 ))

shell for循环

痞子三分冷 提交于 2020-02-13 00:04:14
1. for语句的定义 var foo = 'bar' ; 1 2 2. for语句的格式 for NUM in 1 2 3 for NUM in { 1. .3 } for NUM in `seq 1 3` 或者 for NUM in `seq 1 2 10` do done 1 2 3 4 5 3. for语句示例 vim for . sh #编辑 for 示例脚本文件 # ! / bin / bash for i(变量名) in { 1. .10 } (变量的范围) do echo $i(输出变量i的所有值) done sh for . sh #运行脚本 1 2 3 4 5 6 7 8 9 vim for . sh # ! / bin / bash a = 1 b = 10 for i in { $a . . $b } do echo $i done 1 2 3 4 5 6 7 8 9 可以看到,这种定义变量的方式是不对的 vim for . sh # ! / bin / bash a = 1 b = 10 for i in `seq $a $b` do echo $i done sh for . sh 1 2 3 4 5 6 7 8 9 10 11 运行脚本,可以看到, vim for . sh # ! / bin / bash a = 1 b = 10 for i in

shell中函数的定义 if语句 for循环 while循环

泄露秘密 提交于 2020-02-11 15:47:08
文章目录 shell中函数的定义 if语句 for循环 while循环 1.函数的定义 2.if语句 3.for循环 4.while循环 shell中函数的定义 if语句 for循环 while循环 1.函数的定义 举例: #!/bin/bash foo(){ #定义函数 echo $* } bar(){ #定义函数 echo $@ } foo 1 2 3 4 #调用函数 bar 1 2 3 4 #调用函数 具体格式: 定义函数: 函数名(){ 函数要执行的内容 ..... } 调用函数: 函数名 要传递的参数 2.if语句 例子: #!/bin/bash if [ "$1" == 10 ] then exit 0 #参数正确 退出状态为0 else exit 1 #参数不正确 退出状态为1 fi 格式: if [ 条件 ] then 符合条件时要做的事 else 不符合条件时要做的事 fi 3.for循环 例子 #!/bin/bash test(){ echo "未加引号,二者相同" echo $* echo $@ echo "加入引号后对比" echo "-------" for N in "$*" do echo $N done echo "########" for N in "$@" do echo $N done } test 11 22 33 格式: for N in

shell中的变量

ε祈祈猫儿з 提交于 2020-02-07 12:54:14
shell中的变量 文章目录 shell中的变量 变量的定义 变量的使用 修改变量的值 定义只读变量 删除变量 declare声明变量 变量的定义 变量(variable)在编程语言中用来表示数据。它本身只是一个标记,指向数据在 计算机内存中的一个或一组地址。 变量通常出现在算术运算,数量操作及字符串解析中。 定义变量的方式有三种: variable = value variable = 'value' variable = "value" variable是变量名,value是赋给变量的值 如果value不包含任何空白符(例如空格、Tab等),那么可以不使用引号;如果value包含了空白符,就必须用引号包围起来 注意: 1.=周围不能有空格 2.shell中变量没有数据类型 任何类型它都默认为字符串 变量的使用 使用一个定义过的变量,只要在变量名前加美元符号$即可。例如变量名是 variable1 , 那么 $variable1 就是对变量值的引用。注意变量仅仅在声明时、赋值时、被删除时( unset )、被导出时( export ),算 术运算中使用双括号结构((…))才不需 要有 $ 前缀。。赋值可以是使用 =(比如 var1=27 ),可以是在 read 语句中, 也可以是在循环的头部( for var2 in 1 2 3 ) #!/bin/bash url = http: