1。分支
也就是判断了,先介绍下test(这里牵扯到一个问题,我们写shell时候无论是变量,还是文件名尽量不要和指令名冲突),例如我们想看看当前目录下是否有first.sh这个文件,有就输出haha ,没有就heihei.
[root@liumengli my_shell]# cat shell_example.sh
#!/bin/sh
if [ -f first.sh ]
then
echo 'This file exit!'
else
echo 'do not exit!'
fi
exit 0
[root@liumengli my_shell]#
#!/bin/sh
if test -f first.sh
then
echo 'This file exit!'
else
echo 'do not exit!'
fi
exit 0
这里test有2中写法,一个是[] 另一个是test,我倾向于[],因为看上去比较清楚,注意的是[]里面2边都记得和判断体有空格,不然会出错(shell对空格要求还真是死,麻烦的东西)。上面就囊括了语法了,语法也不多说了,但大家会对判断体有些疑问,-f first.sh啥意思,意思就是是否在当前目录下能找到first.sh文件,如何比较其它的呢,比如比较2个数大小,我怎么知道那些可以做为判断体,那些不行呢,例如:判断 猫是否是狗这个是否可行呢???这个我也记不住,但也不需要记住,大家执行下man test 就很清楚了,不记得就去查。
帮助手册上有的就不列举了, test比较有3大类,字符串比较,算术比较(貌似我到现在还没写过算术shell脚本),与文件有关的测试
刚看了if的控制结构,这里列举下
if condition
then
statement
else
statement
fi
记得换行要清楚,不然会出错,当然可以通过加;号来避免,当这样既不出错,可读性又好的写法还是比;号好用不是。;号的写法像这样
#!/bin/sh
if [ -f first.sh ];then
echo 'This file exit!'
else
echo 'do not exit!'
fi
exit 0
到目前为止,还有个问题,我的分支只有2条路,那我想要第3个岔路呢?那就用到了elif,下面是例子
[root@liumengli my_shell]# cat shell_example.sh
#!/bin/sh
echo "Hello, is it morning? Please answer yes or no?"
read time
if [ $time = "yes" ]; then
echo 'Good morning'
elif [ $time = "no" ]; then
echo 'Good afternoon'
else
echo 'Your answer is not recognized!'
exit 1
fi
exit 0
还有一个重要用法就是
if 命令1
then
命令2
else
命令3
fi
exit 0
如果命令1成功运行(意思就是exit 0)执行命令2,如果命令1执行失败(意思就是exit 1或其他非0的数)就会执行命令命令3
其实
if 命令1 就是等于 命令1 if [ $? -eq 0 ] $?记载的是上一个命令的返回状态。
2循环
for循环,样例
#!/bin/sh
for foo in 'hello world' 'yuna' 'rikku'
do
echo $foo
done
exit 0
foo会一个一个去取in后面的内容,然后把它们显示到屏幕上,我想这个很好理解
#!/bin/sh
for foo in `ls *.sh`
do
echo $foo
done
exit 0
这个我想也不难理解
明显缺陷出来了,对固定次数的循环for就有点麻烦了,比如你想循环打印hello 5次,写成
#!/bin/sh
for foo in 1 2 3 4 5
do
echo hello
done
exit 0
总是比较麻烦的。
while循环
语法是
while condition do
statements
done
很容易理解,给个简单的例子,循环打印hello world 10次
[root@liumengli my_shell]# cat while_shell.sh
#!/bin/sh
i=0
while [ $i -lt 10 ]
do
echo "hello world"
i=$(($i+1))
done
exit 0
until循环,和while 很像,就是条件成立时候退出循环,不成立进入循环体,和WHILE相反
[root@liumengli my_shell]# cat until_shell.sh
#!/bin/sh
read stat
until [ $stat = "hello" ]
do
read stat
done
exit 0
[root@liumengli my_shell]#
分享到:
相关推荐
shell编程-shell编程-分支语句(1) shell编程-shell编程-分支语句(2) shell编程-shell编程-循环语句(1) shell编程-shell编程-循环语句(2) Linux的shell编程(一) Linux的shell编程(二) Linux的...
在IT领域,Linux Shell编程是系统管理员和开发者必备的技能之一。它允许用户通过命令行接口与操作系统进行交互,执行自动化任务,编写脚本,甚至进行复杂的系统管理。本篇文章将深入探讨“Linux Shell编程指南”中...
Linux Shell编程是Linux系统中非常重要的一个环节,它允许用户通过命令行接口编写脚本,自动化执行一系列操作,极大地提高了工作效率。在这个主题中,我们将深入探讨Linux命令行基础以及Shell编程的相关知识。 首先...
**UNIX SHELL编程** 在计算机领域,UNIX操作系统以其强大的命令行接口和脚本编写能力而闻名,其中SHELL是用户与系统交互的核心。SHELL不仅仅是一个命令解释器,它还是一个编程语言,允许用户通过编写脚本来自动化...
在本文中,我们将深入探讨几个中级Shell编程实例,涵盖if判断语句、case分支语句、for循环、while循环以及逻辑运算符的应用。 1. **if判断语句**: 使用`if`关键字可以从屏幕读取参数,如`read`命令。在`if`后面的...
示例包括二进制到十进制的转换、文件循环拷贝等实用脚本,展示了如何在实际场景中应用Shell编程技巧。 7. 脚本调试 调试Shell脚本可以通过添加`set -x`开启命令行跟踪,显示脚本执行的每一步,帮助定位问题。 ...
### 操作系统中的Shell编程知识点概述 #### 一、Shell编程基础 **Shell**是一种用于与计算机操作系统交互的命令行接口。它不仅提供了一个用户与操作系统之间的桥梁,还支持脚本语言,允许用户通过编写一系列命令来...
- 控制流结构如循环 (`for`, `while`) 和分支 (`case`) 用于控制脚本的执行流程。 - 掌握这些结构可以使脚本更加灵活和强大。 **知识点23:shell 函数** - shell 函数可以将一系列命令封装起来以便重复使用。 - ...
Shell编程则是利用Shell的语法特性编写脚本,实现自动化任务处理。这十八个PDF文件详细介绍了Shell编程的各种命令和技巧,对于深入理解和掌握Unix/Linux环境下的自动化工作流程至关重要。 1. **基础概念**: - **...
Shell编程是Linux/Unix系统中的一种命令解释器,它允许用户通过命令行界面与操作系统进行交互,执行各种任务。这份“不错的shell编程资料”显然包含了两份PDF文档,旨在为初学者提供详尽的指导,帮助他们入门并掌握...
3. **流程控制**:包括条件语句(`if...else`)、循环语句(`for`、`while`)和分支结构(`case`)。 4. **变量与参数**:Shell脚本中的变量不需要声明,直接使用即可。`$0`表示脚本本身,`$1`到`$9`表示脚本接收到...
### Shell编程(Linux系统) #### 为什么进行Shell编程 在Linux系统中,虽然存在各种图形界面工具,但Shell依然是一个非常强大的工具。Shell不仅集合了大量的命令,还是一种优秀的编程语言。借助Shell,用户可以实现...
**SHELL编程讲义** SHELL编程是一种在Unix/Linux系统中广泛使用的脚本语言,它允许用户通过命令行界面执行一系列自动化任务。SHELL不仅是一个交互式解释器,还可以用来编写具有复杂逻辑的脚本程序。这篇讲义将深入...
此外,Shell编程中的控制结构包括条件语句(如`if`、`if-else`)、多分支判断(`case`)和循环(`for`、`while`、`until`)。例如,`for`循环常用于遍历列表,`while`循环则根据条件持续执行,直到条件不再满足。 ...
主要针对shell编程的基础做一个阐述,其中包括基础的变量、常量、字符串、数组等的定义方式,一些比较运算符的详细介绍,分支判断语句、循环语句的基础用法、自定义函数的使用方法。还包括一些代码示例
Shell编程是Linux/Unix系统中的命令解释器,同时也是编写脚本的强大工具,广泛应用于系统运维、自动化任务执行和日常操作中。本课件主要涵盖了Shell的基本语法和常用的Shell命令,旨在帮助用户深入理解和掌握这一...
Linux的shell编程是操作系统与用户交互的重要方式,它既是命令行接口,也是一种强大的脚本编程语言。shell允许用户通过命令行来执行系统操作,管理文件,以及自动化一系列任务。它是Linux用户日常操作的核心工具,...
Shell编程是Linux系统中用于自动化任务和管理系统的核心工具。它是一种解释性的脚本语言,允许用户通过命令行界面执行一系列指令。本文档,即《高级Bash脚本编程指南》,旨在帮助从零基础到有一定经验的程序员深入...
3. **流程控制**:`if`语句进行条件判断,`for`和`while`循环处理迭代任务,`case`用于多分支选择。 4. **管道和重定向**:`|`管道连接命令,将一个命令的输出作为另一个命令的输入,`>`和`用于重定向输出和输入。 ...