Linux Shell for循环写法总结
关于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(i=1; i<=10; i++) print i}'
注意:AWK中的for循环写法和C语言一样的
===============================================================
01.#/bin/bash
02.# author: 周海汉
03.# date :2010.3.25
04.# /ablo_zhou
05.arr=("a" "b" "c")
06.echo "arr is (${arr[@]})"
07.echo "item in array:"
08.for i in ${arr[@]}
09.do
10. echo "$i"
11.done
12.echo "参数,\$*表示脚本输入的所有参数:"
13.for i in $* ; do
14.echo $i
15.done
16.echo
17.echo '处理文件 /proc/sys/net/ipv4/conf/*/accept_redirects:'
18.for File in /proc/sys/net/ipv4/conf/*/accept_redirects; do
19.echo $File
20.done
21.echo "直接指定循环内容"
22.for i in f1 f2 f3 ;do
23.echo $i
24.done
25.echo
26.echo "C 语法for 循环:"
27.for (( i=0; i<10; i++)); do
28.echo $i
29.done
---------------------------------------------------------------------------------------------------------
shell中for循环用法
shell语法好麻烦的,一个循环都弄了一会 ,找了几个不同的方法来实现输出1-100间可以被3整除的数
1.用(())
#!/bin/bash
clear
for((i=1;i<100;i++))
for
do
if((i%3==0))
then
echo $i
continue fi
done
2.使用`seq 100`
#!/bin/bash
clear
for i in `seq 100`
do
if((i%3==0))
then
echo $i
continue
fi
done
3.使用while
#!/bin/bash
clear
i=1
while(($i<100))
do
if(($i%3==0))
then
echo $i
fi
i=$(($i+1))
done
--------------------------------------------------------------------------------------------------------
在shell用for循环做数字递增的时候发现问题,特列出shell下for循环的几种方法:
1.
for i in `seq 1 1000000`;do
echo $i
done
用seq 1 10000000做递增,之前用这种方法的时候没遇到问题,因为之前的i根本就没用到百万(1000000),因为项目需要我这个数字远大于百万,发现用seq 数值到 1000000时转换为1e+06,根本无法作为数字进行其他运算,或者将$i有效、正确的取用,遂求其他方法解决,如下
2.
for((i=1;i<10000000;i++));do
echo $i
done
3.
i=1
while(($i<10000000));do
echo $i
i=`expr $i + 1`
done
因为本方法调用expr故运行速度会比第1,第2种慢不少不过可稍作改进,将i=`expr $i
+
1`改为i=$(($i+1))即可稍作速度的提升,不过具体得看相应shell环境是否支持
4.
for i in {1..10000000;do
echo $i
done
其实选用哪种方法具体还是得由相应的shell环境的支持,达到预期的效果,再考虑速度方面的问题。
linux bash 写法
linux bash 写法
Linux Bash写法
1. 概述
Linux Bash是一种命令行工具,用于在Linux操作系统下执行各种命令和脚本。本文将介绍一些常见的Linux Bash写法,包括变量定义、条件判断、循环语句以及函数定义等。
2. 变量定义
在Bash中,可以使用等号来定义变量,例如:
```bash
name="John"
age=25
```
也可以使用读取命令的方式定义变量:
```bash
read -p "请输入您的姓名:" name
echo "您的姓名是:$name"
```
使用$符号可以获取变量的值,例如: ```bash
echo "姓名:$name,年龄:$age"
```
3. 条件判断
在Bash中,可以使用if语句进行条件判断,例如:
```bash
if [ $age -gt 18 ]; then
echo "成年人"
else
echo "未成年人"
fi
```
在if语句中,可以使用-eq、-ne、-lt、-le、-gt、-ge等运算符进行数值比较,也可以使用=、!=、-z、-n等运算符进行字符串比较。
4. 循环语句
Bash提供了多种循环语句,包括for、while和until等。
4.1 for循环
for循环用于遍历列表或者数字范围,例如: ```bash
for fruit in apple orange banana
do
echo "水果:$fruit"
done
```
也可以使用seq命令来生成数字范围:
```bash
for i in $(seq 1 5)
do
echo "数字:$i"
done
```
4.2 while循环
while循环用于在条件满足时执行循环体,例如:
```bash
count=1
while [ $count -le 5 ]
do echo "计数:$count"
linux foreach用法
linux foreach用法
在Linu某中,`foreach`是一个非常有用的命令,它用于循环处理一组文件或一系列数据。它的用法比较灵活,可以根据具体需求进行调整。
`foreach`命令的基本语法如下:
```
foreach variable (list)
end
```
下面将详细介绍`foreach`命令的用法。
1.对文件进行循环操作:
```
foreach file (file1.t某t file2.t某t file3.t某t)
end
```
2.对目录中的文件进行循环操作:
```
foreach file (`ls directory/某.t某t`)
end
``` 3.对数据列表进行循环操作:
```
foreach item (item1 item2 item3)
end
```
4.在循环中使用变量:
```
foreach file (file1 file2 file3)
echo "Processing file: $file"
end
```
在上述命令中,`$file`是一个变量,表示当前迭代的文件名。`echo`命令会输出当前迭代的文件名。
5. 利用`foreach`处理命令输出的数据:
```
echo $line
end
```
6.指定循环次数: ```
set n = 3
foreach i (`seq 1 $n`)
echo "Iteration $i"
end
```
在上述命令中,使用`seq`命令生成一个从1到`$n`的序列,`$i`表示当前迭代的数值。
总结:
`foreach`命令可以用于对文件、目录和数据列表进行循环操作,可以处理命令输出的数据,还可以利用变量进行动态调整。它在Linu某环境中是一个非常有用的命令,能够简化循环处理的操作,提高工作效率。
Shell脚本技巧
Shell脚本技巧
1.test测试命令
test命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试,其测试符和相应的功能分别如下:
(1)数值测试:
-eq:等于则为真
-ne:不等于则为真
-gt:大于则为真
-ge:大于等于则为真
-lt:小于则为真
-le:小于等于则为真
(2)字符串测试:
=:等于则为真
!=:不相等则为真
-z 字符串:字符串长度伪则为真
-n 字符串:字符串长度不伪则为真
(3)文件测试:
-e 文件名:如果文件存在则为真
-r 文件名:如果文件存在且可读则为真
-w 文件名:如果文件存在且可写则为真
-x 文件名:如果文件存在且可执行则为真
-s 文件名:如果文件存在且至少有一个字符则为真
-d 文件名:如果文件存在且为目录则为真
-f 文件名:如果文件存在且为普通文件则为真
-c 文件名:如果文件存在且为字符型特殊文件则为真
-b 文件名:如果文件存在且为块特殊文件则为真
另外,Linux还提供了与(“!”)、或(“-o)、非(“-a”)三个逻辑操作符用于将测试条件连接起来,其优先级为:“!”最高,“-a”次之,“-o”最低。同时,bash也能完成简单的算术运算,格式如下:
$[expression]
例如:var1=2
var2=$[var1*10+1]
则:var2的值为21。
2.if条件语句
if [ -x /sbin/quotaon ]; then
echo "Turning on Quota for root filesystem"
/sbin/quotaon /
elif [ -x /sbin/quotaon ]; then /usr/bin/bash
else
echo "ok"
fi
3.for 循环
#!/bin/sh
WORD="a b c d e f g h i j l m n o p q r s t u v w x y z"
Shell脚本编程详解-吐血共享
第12章 Shell脚本编程
Shell命令行的运行
编写、修改权限和执行Shell程序的步骤
在Shell程序中使用参数和变量
表达式比较、循环结构语句和条件结构语句
在Shell程序中使用函数和调用其他Shell程序
12-1 Shell命令行书写规则
Shell命令行的书写规则
对Shell命令行基本功能的理解有助于编写更好的Shell程序,在执行Shell命令时多个命令可以在一个命令行上运行,但此时要使用分号(;)分隔命令,例如:
[root@localhost root]# ls a* -l;free;df
长Shell命令行可以使用反斜线字符(\)在命令行上扩充,例如:
[root@localhost root]# echo “this is \
>long command”
This is long command
注意:
“>”符号是自动产生的,而不是输入的。
12-2
编写/修改权限及执行Shell程序的步骤
编写Shell程序
执行Shell程序
Shell程序有很多类似C语言和其他程序设计语言的特征,但是又没有程序语言那样复杂。Shell程序是指放在一个文件中的一系列Linux命令和实用程序。在执行的时候,通过Linux操作系统一个接一个地解释和执行每条命令。首先,来编写第一个Shell程序,从中学习Shell程序的编写、修改权限、执行过程。 12-2-1 编辑Shell程序
编辑一个内容如下的源程序,保存文件名为date,可将其存放在目录/bin下。
[root@localhost bin]#vi date
#! /bin/sh
echo “Mr.$USER,Today is:”
echo &date “+%B%d%A”
echo “Wish you a lucky day !”
注意:
#! /bin/sh通知采用Bash解释。如果在echo语句中执行Shell命令date,则需要在date命令前加符号“&”,其中%B%d%A为输入格式控制符。
Linux之BASH和SHELL学习总结
Bourne Again SHell (简称 bash)
功能:
1、命令编修能力 .bash_history文件
2、命令与档案补全能力 Tab键
[Tab] 接在一串指令的第一个字的后面,则为命令补全;
[Tab] 接在一串指令的第二个字以后时,则为『档案补齐』!
3、命令别名设定,指令: alias ---alias lm='ls -al',在.bash_profile文件里
4、工作控制、前景背景控制: (job control, foreground, background)-----------------------???????????不懂
5、程序化脚本: (shell scripts)
6、通配符(Wildcard)
bash内建命令 type type [-tpa] name,产看命令是否是bash内建命令,还是外部命令。
命令多行输入 反斜杠'\' 然后紧接回车。
变量取用 echo $variable
变量设定规则
1、等号连接,等号两边没有空格;
2、变量名只能是字母和数字,变量名开头不能为数字;
3、发量内容若有空格符可使用双引号『"』或单引号『'』将发量内容结合起来,但
双引号内的特殊字符如 $ 等,可以保有原本的特性,如下所示: 『var="lang is $LANG"』则『echo $var』可得『lang is en_US』 单引号内的特殊字符则仅为一般字符 (纯文本),如下所示: 『var='lang is $LANG'』则『echo $var』可得『lang is $LANG』;
4.可用跳脱字符『 \ 』将特殊符号(如 [Enter], $, \, 空格符, '等)变成一般字符;
5、在一串指令中,还需要藉由其他的指令提供的信息,可以使用反单引号『`指令`』或 『$(指令)』。
linux shell 运算符
- 1 - linux shell 运算符
Linuxshell运算符是在shell命令行界面下进行数学运算的工具。它可以用来进行简单的数学计算,比如加减乘除、比较大小和逻辑运算等,为用户提供了方便和快捷的计算方式。本文将会介绍几个常用的 Linux shell 运算符。
1. 基本运算符
Linux shell 运算符中最基本的运算符是加减乘除等数学运算符。在命令行界面下输入数学表达式,例如 3+2 或 5*6,使用 echo
命令输出结果即可。例如:
$ echo $((3+2))
5
$ echo $((5*6))
30
其中,双括号内的表达式会被 shell 解释器解析并计算出结果,然后 echo 命令会输出计算结果。
2. 比较运算符
另一种常见的 Linux shell 运算符是比较运算符。比较运算符可以用来比较两个数的大小关系,判断它们是否相等等。常见的比较运算符有:
- -eq:等于
- -ne:不等于
- -gt:大于 - 2 - - -lt:小于
- -ge:大于等于
- -le:小于等于
这些运算符也可以用在 if 语句中,判断某个条件是否成立。例如:
if [ $a -eq $b ]
then
echo 'a 等于 b'
fi
3. 逻辑运算符
逻辑运算符在 Linux shell 中也很重要。它们可以用来组合多个条件,判断复杂的逻辑关系。常见的逻辑运算符有:
- !:逻辑非
- -o:逻辑或
- -a:逻辑与
例如:
if [ ! $a -eq $b -o $a -lt $b ]
then
echo 'a 不等于 b 或者 a 小于 b'
批处理命令中for循环基本用法
批处理命令行中
for
循环基本用法
for
循环是在办公自动化中非常实用的语句之一,本节讨论
DOS
语言中
for
循环的
各种模式:如
/r
,
/d
,
/l
,
/f
等,以及各种参数:如
tokens
,
delims
,
usebackq
等的基
本用法。我们须要根据实际情况选择不同的模式和参数来配置
for
循环以达到我们的目
的。
1
、【
for
语句的常规用法】
形式
1
:
for %%i in (
字符串集合
/
数字列表
/…) do
命令语句
@echo off
for %%i in (aa,bb,cc) do echo %%i
pause
结果为:
aa
bb
cc
注:这里如果用点进行分割,字符串会作为一个整体输出
如果用逗号分割,则会一次一个单次进行打印。
判断某个磁盘是否存在,如果盘符存在,则输出它:
@echo off
echo
存在有驱动器:
for %%i in (a,b,c,d,e,f,g) if exist %%i: echo %%i
pause
显示当前目录下的
文件名称
(非文件夹,
文件夹将不会被列出
):
@echo off
for %%i in (*.*) do echo "%%i"
pause
仅显示当前目录下的
txt
文件名称(
通配符
*.txt
的用法):
@echo off
for %%i in (*.txt) do echo "%%i"
pause 把
txt
换成其他扩展名亦可
仅列出其他格式的文件名
仅显示当前目录下的
txt
文件名称(
通配符
?
规定
字符个数
):
@echo off
for %%i in (??.txt) do echo "%%i"
pause
仅会输出当前目录下
文件名为
2
个字符的
txt
文件名
2
、【关于
for
语句的
/f
模式
(遍历
文件内容
模式)】
①
/f
模式
/f
模式用于
遍历文件中的内容
:
@echo off
for /f %%i in (test.txt) do echo %%i
pause
运行的结果,
会
逐行打印
test.txt
文件中的内容
shell编程总结
- 1 - shell编程总结
Shell编程是一种基于命令行的脚本编程语言,常用于Linux和Unix系统中。本文将对Shell编程进行总结,包括以下内容:
1. Shell的基础知识:介绍Shell的定义、历史、发展以及Shell与Linux的关系。
2. Shell脚本的格式:讲解Shell脚本的格式,包括文件头、变量、注释、命令等。
3. Shell命令:介绍常用的Shell命令,如ls、cd、cp、mv、rm、mkdir、cat等。
4. Shell的流程控制:讲解Shell脚本的流程控制语句,包括if语句、for循环、while循环、case语句等。
5. Shell函数:介绍Shell函数的定义、调用和传参等。
6. Shell的文本处理:讲解Shell脚本中的文本处理命令,如grep、sed、awk等。
7. Shell的正则表达式:介绍正则表达式的定义、语法和常用操作符等。
8. Shell的调试和错误处理:讲解Shell脚本的调试方法和错误处理语句,如set -x、set -e等。
9. Shell脚本的实战:通过实际案例介绍如何使用Shell脚本进行系统管理、日志分析、数据处理等。
通过本文的总结,读者可全面了解Shell编程的基础知识和常用技巧,提高Shell编程的能力。 - 2 -
linux csh while 循环语句
在 Linux 中,csh 是一个流行的 shell,但与 bash、sh、ksh 等其他 shell 相比,csh 的语法有所不同。在 csh 中,你不能直接使用 while 循环,但你可以使用 foreach 循环结构来实现类似的功能。
以下是一个如何在 csh 中使用 foreach 循环的示例,该循环的行为类似于 while 循环:
csh复制代码
#!/bin/csh
set counter = 1
foreach i (1 2 3 4 5) # 这将循环5次,类似于while(counter <= 5)
echo "Counter: $counter, Value: $i"
set counter = `expr $counter + 1`
end
在上面的示例中,我们使用 foreach 循环来迭代数字 1 到 5。每次迭代时,我们打印当前的计数器和值,并递增计数器。这相当于以下的 while 循环:
csh复制代码
#!/bin/csh
set counter = 1
while ($counter <= 5)
echo "Counter: $counter, Value: $counter"
set counter = `expr $counter + 1`
end
请注意,虽然 csh 的语法与 bash 或其他流行的 shell 有所不同,但它们的核心概念是相似的。如果你习惯于使用其他 shell,可能需要一些时间来适应 csh 的语法。
while和for循环语法
while和for循环语法
当您需要执行一组重复的任务时,可以使用循环结构。在编程中,有多种类型的循环可用于控制程序流程并重复执行某些代码段。两种最常用的循环类型是
while 循环和 for
循环。本文将介绍这两种循环的基本用法以及它们之间的差异。
一、while 循环
while 循环会一直执行某个条件为真的操作。当条件变为假时,则跳出循环。其基本语法如下:
while condition:
# code block to be executed
其中 condition
是一个表达式,在每次迭代开始时进行评估。如果为真,则执行包含在缩进代码块中的语句。然后再次测试条件,如果仍然为真,则继续执行循环。这个过程会一直持续到条件变为假为止。
下面是一个示例:
i = 0
while i < 5:
print("Value of i:", i)
i += 1
在这个例子中,我们将一个计数器变量 i 初始化为 0,并检查它是否小于
5。如果是,则打印出 i 的值并将其增加 1。然后再次检查条件,直到 i
不再小于 5。
二、for 循环
for 循环是一种用于遍历序列或其他可迭代对象的特殊类型的 while 循环。它可以遍历列表、元组或字符串等集合类型。其基本语法如下:
for variable in iterable:
# code block to be executed
其中 iterable
是要遍历的可迭代对象。每次迭代时,都会将它的下一个元素赋给变量 variable,并执行包含在缩进代码块中的语句。
下面是一个示例:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print("Value of fruit:", fruit)
在这个例子中,我们定义了一个名为 fruits 的列表,并使用 for
循环遍历其中的每个元素。每次迭代时,都会将列表中的下一个元素赋给变量 fruit,并打印出它的值。
