Shell语法 【if while for】

【if语法 测试条件 判断语句】
转自:http://lovelace.blog.51cto.com/1028430/1211353

【while for循环】
转自:https://blog.csdn.net/weixin_36586564/article/details/78681117
for 变量 in 列表
do
command1
command2
...
commandN
done

也可写成: for var in list; do

读取列表中的值
for test in Alabama BOb Tom Console
do
echo The next state is $test
done

读取列表中的复杂值
有两种解决办法:
*使用转义字符(反斜线)来将单引号转移;
*使用双引号来定义用到单引号的值

for test in I don\‘t think if "this‘ll" work
do
echo The next state is $test
done

The next state is I
The next state is don‘t
The next state is think
The next state is if
The next state is this‘ll
The next state is work

从命令读取值
有两种方式可以将命令输出赋值给变量:
(1)反引号字符(`)
(2)$()格式
例如:
test=`date`
test=$(date)

#!/bin/bash
# reading values from a file

file="states"
for state in $(cat $file)
do
echo "visit beautiful $state"
done

states文件内容:
Alabama BOb
Tom Console
执行结果:
visit beautiful Alabama
visit beautiful BOb
visit beautiful Tom
visit beautiful Console

字段分割符
造成这个问题的原因是特殊的环境变量IFS,叫作内部字段分隔符。默认情况下,bash shell会将下列字符当作字段分隔符:
*空格
*制表符
*换行符

可参考的安全实践是在改变IFS之前保存原来的IFS值,之后再恢复它
IFS.OLD=$IFS
IFS=$‘\n‘
<在代码中使用新的IFS值>
IFS=$IFS.OLD

使用通配符读取文件目录
for file in /proc/*;
do
echo $file is file path \! ;
done

类C风格for循环的语法格式
for((expr1; expr2; expr3))
do
command
command
...
done

#!/bin/bash
#使用类C风格for循环输出1~5
for ((integer = 1; integer <= 5; integer++))
do
echo "$integer"
done

利用while循环计算1到100的和:
let 命令是 BASH中用于计算的工具,用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量。如果表达式中包含了空格或其他特殊字符,则必须引起来
注意:bash的工具,如果用 sh cmd.sh 执行脚本,let命令不识别

i=1
sum=0
while [ $i -le 100 ]
do
let sum=sum+$i
let i++
done

使用read结合while循环读取文本文件
#从file文件中读取文件内容赋值给line
while read -r line #(使用参数r会屏蔽文本中的特殊符号,只做输出不做转译)
do

echo $line #输出文件内容

done < $file

原文地址:https://www.cnblogs.com/albertarmstrong/p/9595664.html

时间: 2024-10-04 00:59:44

Shell语法 【if while for】的相关文章

makefile中的shell语法

在Makefile中写shell代码有点诡异,和不同的shell语法不太一样,如果不了解,看Makefile会莫名其妙.下面总结了一些. 1:尽在Makefile文件的目标项冒号后的另起一行的代码才是shell代码.eg:xx = xx1         // 这里时makefile代码yy:xx = xx2   // 这是是makefile代码,makefile允许变量赋值时,'='号两边留空格yy:    xx=xx3 // 只有这里是shell代码 ,shell不允许‘=’号两边有空格哦.

Linux shell编程(二):shell语法

shell 语法 shell 执行命令操作 当shell读取输入时,它将执行一系列操作.如果输入表示注释的开头,则shell将忽略注释符号('#')和该行的其余部分. shell 读取和执行命令时将经过下列操作: 从一个文件(Shell脚本)中读取它的输入,从作为参数的字符串到 "-c" 调用选项(调用Bash),或者从用户的终端. 将输入拆分为单词和操作符,遵守所描述的引用规则.这些标记由"元字符"分隔.此步骤执行别名扩展. 将令牌解析为简单的复合命令. 执行各种

shell语法习题练习进阶版

第4章 shell语法深度习题练习 4.1 使用if,case,函数的方法将服务改成system(centos6) 4.1.1 if方法 4.1.1.1 system实现 4.1.1.1.1 编写代码信息 [[email protected] run]# vim /server/scripts/rsyncd ? ? para=$1 proc_file="/var/run/rsyncd.pid" ? if [ "x$para" == "xstart"

Shell 语法 if 、 case 、for 、 while、 until 、select 、repeat、子函数

if语法 : if [ expression ]    then   commandselif [ expression2 ]   then   commandselse   commandsfi case 语法: case string1 in   str1)    commands;;   str2)    commands;;   *)    commans;;esac 循环语句 for 语法:    for  var in list do commands done     在此形式时,

shell语法简单介绍

一.基本的语法 1.1.shell文件开头 shell文件必须以以下的行開始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的參数是用来运行该文件的程序.在这个样例中我们使用/bin/sh来运行程序. 当编辑好脚本时,假设要运行该脚本,还必须使其可运行. 要使脚本可运行: 执行chmod +x filename 这样才干用./filename 来执行 1.2 凝视 在进行shell编程时,以#开头的句子表示凝视,直到这一行的结束.我们真诚地建议您在程序中使用凝视. 假设

shell语法简介

一.基本语法 1.1.shell文件开头 shell文件必须以下面的行开始(必须方在文件的第一行):  #!/bin/sh  符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序.  当编辑好脚本时,如果要执行该脚本,还必须使其可执行.  要使脚本可执行: 运行chmod +x filename 这样才能用./filename 来运行 1.2 注释  在进行shell编程时,以#开头的句子表示注释,直到这一行的结束.我们真诚地建议您在程序中使用注释

Linux里你必须掌握的Shell语法

For循环 ##通常For循环用来执行一些重复不变步骤 for i in `ls /tmp`    ##为ls /tmp设置变量为i     do        ##所以执行do与Done内的操作,do对应需要done结尾 rm -rf $i       ##删除ls /tmp查询到的内容 done ##参考          #!/bin/sh          for i in `seq 10`          do          echo $i          done ##分库备

Shell语法—— if 条件语句

if 条件语句语法 1.单分支结构 if < 条件表达式 >; then 指令 fi 2.双分支结构 if < 条件表达式 >; then 指令 1 else 指令 2 fi 3.多分支结构 if < 条件表达式 1 >; then 指令 1 else if < 条件表达式 2 >;then 指令 2 elif < 条件表达式 3 >;then 指令 3 else 指令 4 fi if 条件语句多种条件表达式语法 1.test 条件表达式 if

Shell语法—— while 条件语句

while 循环语句 while 循环语句语法格式为: while < 条件表达式 > do 指令 done 有关脚本运行的相关用法 命令 说明 sh file.sh & 把 file.sh 脚本放到后台运行(后台运行脚本的常用方法) ctl+c 停止执行当前脚本或任务 ctl+z 暂停执行当前脚本或任务 bg 把当前脚本或任务放到后台执行 fg 把当前脚本或任务放到前台执行.如果是多个脚本,需加编号,如: fg 2 jobs 查看当前执行的脚本或任务 kill 关闭执行的脚本任务 有