[转帖]Linux下Shell的for循环语句 第一类:数字性循环

linux,shell,for,循环,语句,第一类,数字 · 浏览次数 : 0

小编点评

**脚本说明:** 这三个脚本都包含了遍历和输出文件名的内容,但它们使用不同的语法。 **第一类:字符性循环** ```bash for i in `ls` ; do echo $i is file name\! done ``` **第二类:路径查找** ```bash for file in /proc/* ; do echo $file is file path \! done ``` **第三类:路径查找** ```bash for file in $(ls *.sh) ; do echo $file is file path \! done ``` **总结:** 这三个脚本都包含了遍历和输出文件名的内容,但使用不同的语法。第一类使用 `for` 循环,第二类使用 `for` 和 `in` 语句,第三类使用 `for` 和 `in` 语句和 `$( )` 函数来构造范围。 **注意:** * 这三个脚本需要在运行之前安装 `bash` 命令行工具。 * 这些脚本假设您想遍历的目录是有效的。 * 您可以根据需要修改这些脚本以进行不同的操作。

正文

 

#!/bin/bash  
  
for((i=1;i<=10;i++));  
do   
echo $(expr $i \* 3 + 1);  
done


#!/bin/bash  
  
for i in $(seq 1 10)  
do   
echo $(expr $i \* 3 + 1);  
done 


#!/bin/bash  
  
for i in {1..10}  
do  
echo $(expr $i \* 3 + 1);  
done  

#!/bin/bash  
  
awk 'BEGIN{for(i=1; i<=10; i++) print i*3+1}'  

第二类:字符性循环

#!/bin/bash  
  
for i in `ls`;  
do   
echo $i is file name\! ;  
done


#!/bin/bash  
  
for i in $* ;  
do  
echo $i is input argument\! ;  
done  

#!/bin/bash  
  
for i in f1 f2 f3 ;  
do  
echo $i is an item of a list;  
done

#!/bin/bash  
  
list="rootfs usr data data2"  
for i in $list;  
do  
echo $i is an item of a list;  
done 

第三类:路径查找

#!/bin/bash  
  
for file in /proc/*;  
do  
echo $file is file path \! ;  
done

#!/bin/bash  
  
for file in $(ls *.sh)  
do  
echo $file is file path \! ;  
done  

总结:

现在一般都使用for in结构,for in结构后面可以使用函数来构造范围,比如 $()、`` 这些,里面写一些查找的语法,比如ls test*,那么遍历之后就是输出文件名了。

与[转帖]Linux下Shell的for循环语句 第一类:数字性循环相似的内容:

[转帖]Linux下Shell的for循环语句 第一类:数字性循环

#!/bin/bash for((i=1;i<=10;i++)); do echo $(expr $i \* 3 + 1); done #!/bin/bash for i in $(seq 1 10) do echo $(expr $i \* 3 + 1); done #!/bin/bash for

[转帖]linux 批量修改文件格式

将Windows上的shell脚本拷贝到Linux时,脚本的编码格式还是docs,需要改成unix才可执行,在文件不多的情况下可以直接手动更改,但是在脚本文件比较多的时候,手动改起来就太麻烦了,此时就可以使用shell命令批量来进行更改。 批量更改脚本如下: for i in `find . -ty

[转帖]Linux下Shell日期的格式

https://www.linuxprobe.com/linux-shell-date.html 导读 不管是哪种语言,日期/时间都是一个非常重要的值。比如我们保存日志的时候,往往是某个前缀再加上当前时间,这样日志文件名称就可以做到唯一。在Shell环境里,我们获取时间的命令是date,但date出

[转帖]Linux中执行shell脚本的4种方法总结

https://www.jb51.net/article/53924.htm 这篇文章主要介绍了Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法,需要的朋友可以参考下 bash shell 脚本的方法有多种,现在作个小结。假设我们编写好的shell脚本的文件

[转帖]Linux中EOF和Expect命令详解

一、EOF说明 Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。可以把EOF替换成其他东西,意思是把内容当作标准输入传给程序。 回顾一下< <的用法。当shell看到< <的时候,它就会知道下一个词是一个分界符。在

[转帖]Linux shell 单引号和双引号

https://www.cnblogs.com/airoot/p/15324883.html 在编写shell脚本的时候经常会用到引号,有些时候却老是忘记单引号和双引号之间的区别,所以就整理一下供以后脑子不好使了的时候前来复习一下。首先说下他们的共同点: 好像就只有一个,就是它们都可以用来界定一个字

[转帖]linux shell中 if else以及大于、小于、等于逻辑表达式介绍

https://www.jb51.net/article/34332.htm 在linux shell编程中,大多数情况下,可以使用测试命令来对条件进行测试,这里简单的介绍下,方便需要的朋友 比如比较字符串、判断文件是否存在及是否可读等,通常用"[]"来表示条件测试。注意:这里的空格很重要。要确保方

[转帖]ESXi命令行shell下最常用的命令

https://forum.huawei.com/enterprise/zh/thread/580931293695328256 services.sh – Linux服务通常使用services命令管理,管理ESXi服务是通过使用services.sh命令实现的。Services.sh命令支持的参

[转帖]linux下 安装了中文版本的,造成sqlplus 连接时出现了乱码

https://blog.51cto.com/u_11529070/3607380 linux下 安装了中文版本的,造成sqlplus 连接时出现了乱码 如图 一开始以为是LANG 变量的问题 后来发现是NLS_LANG的问题 解决方法: export NLS_LANG="AMERICAN_AMER

[转帖]linux下性能测试工具netperf使用

https://www.shuzhiduo.com/A/MyJxX2VpJn/ 一、功能简介 netperf是一款针对网络性能的测试工具,主要基于TCP或UDP的传输。根据应用的不同,可以进行批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式的