Linux shell入门基础(七)

七、bash脚本中的流程控制

条件判断控制

-[]([]中的表达式是否为真)  &&(前边的结果是true的时候执行后边的命令)   ||(前边的结果是false的时候执行后边的命令)

-if

-case

循环控制

-while

-utile

-for

-break

-continue

#[ abc ]

#echo $?

0(表示true)

#[ ]

#echo $?

1(表示false)

#["$USER" = "byf" ](‘$?*‘的意义是去掉特殊意义的字符,“ ”双引号只是去掉空格的特殊意义)

#echo $?

1

#[$USER = root ]

#echo $?

0

#[$USER = root ] && echo hello root

hello root

#[-x /etc/] && echo hello

hello

#man bash中输入/-w即可查找,n查找下一个

#-r(读) -w(写) -x(可执行) -f(普通文件) -d(是否有目录) -L (链接)-b(block的适配文件) -c

#[-b /dev/hda ]&& echo you have a ide device

#[-b /dev/sda ]&& echo you have a scsi device

you have a scsi device

#[-f /usr/sbin/httpd] && echo please install httpt again

please install httpd again

#vi b

#!/bin/bash

read AAA

if [ $AAA = byf ]

then

echo hello byf

elif [ $AAA = root ]

then

echo hello root

else

echo ‘get out here‘

fi

wq

#./b

#bash -v ./b(看执行到那个命令)

#bash -vx ./b(查看出错命令行,进行调试,可查看每个变量的值)

C和bash调试的差别

C是纯二进制的文件,调试需要相应的开发环境设置断点

bash中是文本的文件,可直接检测到出错的地方

#

#!/bin/bash

read AAA

case $(取出变量的值)AAA in

byf )

echo hello byf

echo nice to meet you

;;(表示结束)

root )

echo hello root

echo i miss you so much

;;

* )

echo get out here

;;

esac

:wq

#bash ./c

byf

-eq = 相同

-ne !=不同

-gt >

-lt <

-ge >=

-le <=

-z 为空

#!/bin/bash

AAA="`pgrep httpd`"

[-z "$AAA"("3186 3188 3189 3190 3191 3192 3193 3194 3195

"去掉变量中的空格)]&& echo httpd ‘httpd is not running!‘ && exit

for i in $AAA

do

kill -9 $i

done

echo httpd is killed

wq

#chmod a+x d

#./d

#./d

#!/bin/bash

for aaa in 111 222 333 /etc/profile.d/*.h

do

echo $aaa (chmod a+ x $aaa批量操作)

done

#chmod a+x e

#./e

111

222

333

/etc/profile.d/colorls.sh /etc/profile.d/glib2.sh /etc/profile.d/gnome-ssh-askpass.sh /etc/profile.d/kde.sh /etc/profile.d/lang.sh /etc/profile.d/less.sh /etc/profile.d/qcd.sh /etc/profile.d/qt.sh /etc/profile.d/udisks-bash-completion.sh /etc/profile.d/vim.sh /etc/profile.d/which2.sh

#seq 1 100

1

2

……

100

#!/bin/bash

for aaa in `seq 1 100`

do

echo $aaa; sleep 1(分号不加回车,不加分号加换行)

(echo -n "$aaa"

sleep 1)

done

#

#!/bin/bash

iii=0

while [ $iii -lt 100 ]

do

i=$[$iiii+1]

echo -n "$iii "

done

#

#!/bin/bash

iii=0

until [$iii -gt 100]

do

iii=$[$iii+1]

echo -n "$iii "

done

unset iii

:wq

#

#!/bin/bash

while

true

do

read AAA

if ["$AAA" = "ddd"]

then

break

fi

done

时间: 2024-08-25 05:11:14

Linux shell入门基础(七)的相关文章

Linux shell入门基础(六)

六.Shell脚本编程详解 将上述五部分的内容,串联起来,增加对Shell的了解 01.shell脚本 shell: # #perl #python #php #jsp 不同的脚本执行不同的文本,执行的角色是不一样的: #shell scripts(UNIX Like系统的原则有一条:程序越短越好) #bash csh tcsh ksh #which startx(查看文件的路径) /usr/X11R6/bin/startx #vi `which startx` #!/bin/sh …… #vi

Linux shell入门基础(八)

八.shell脚本sed&awk 01.sed的使用 流编辑器-Steam Editor #ed /etc/passwd 1,10p …… 1s/root/byf/p(替换root为byf) #sed -e 's/root/byf/g' /etc/passwd (功能同上) 只是显示出来的内容更改 #sed -e 's/root/byf/g' /etc/passwd > /tmp/a #cp /tmp/a /etc/passwd #sed -n -e '/\<byf\>/p(打印

Linux shell脚本基础学习详细介绍(完整版)二

详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续. Linux shell脚本基础已经被分成好几个部分了,这里对控制流程的内容也就马上讲完了,这是最后一部分关于here document,这里举例稍微有点复杂,我们慢慢来分析这个复杂Linux shell脚本. 6. Here documents 当要将几行文字传递给一个命令时,here docu

1)Linux程序设计入门--基础知识

1)Linux程序设计入门--基础知识 Linux下C语言编程基础知识 前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编译 Makefile的编写 程序库的链接 程序的调试 头文件和系统求助 1.源程序的编译 在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面我们 以一个实例来说明如何使用gcc编译器. 假设我们有下面一个非常简单的源程序(hello.c): int main(int argc,

shell 入门基础三

    linux shell 编程 1什么是bash shell 变量 shell变量可分为两类: 局部变量和环境变量. 局部变量只在创建它们的shell中可用.而环境变量则可以在创建它们的shell及其派生出来的任意子进程中使用.有些变量是用户创建的,其他的则是专用shell变量.变量名必须以字母或下划线字符开头.其余的字符可以是字母.数字(0~9)或下划线字符.任何其他的字符都标志着变量名的终止.名字是大小写敏感的.给变量赋值时,等号周围不能有任何空白符.为了给变量赋空值,可以在等号后跟一

shell 入门基础一

1,man命令是一个帮助我们,快速掌握某个命令的使用方法的命令,当然前提时我们安装了man命令模块,man命令的用法,man command,后面跟自己不了解的命令,如果你的系统没有安装,先执行命令,yum install man* 安装 2,cd命令,cd命令时linux目录下,切换路径的命令,主要用法是用来浏览文件系统,和遍历目录所需. 用法(一)cd  绝对路径 例如cd /etc/profile.d,cd /home等等 用法(二)cd  相对路径 例如cd ../ 上一级目录 cd .

Linux shell脚本基础学习详细介绍(完整版)一

Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Linux 脚本编写基础◆1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编辑好脚本时,如果要执行该脚本,还必须使其可执行. 要使脚本可执

Linux Shell常用技巧(七) find xargs

Linux Shell常用技巧(七) find xargs 十六. 文件查找命令find: 下面给出find命令的主要应用示例:    /> ls -l     #列出当前目录下所包含的测试文件    -rw-r--r--. 1 root root 48217 Nov 12 00:57 install.log    -rw-r--r--. 1 root root      37 Nov 12 00:56 testfile.dat    -rw-r--r--. 1 root root 10530

Linux Shell常用技巧(七)

十六. 文件查找命令find: 下面给出find命令的主要应用示例:    /> ls -l     #列出当前目录下所包含的测试文件    -rw-r--r--. 1 root root 48217 Nov 12 00:57 install.log    -rw-r--r--. 1 root root      37 Nov 12 00:56 testfile.dat    -rw-r--r--. 1 root root 10530 Nov 11 23:08 test.tar.bz2    -