Linux基础(六)

shell脚本中的三大循环和函数知识点

一、流程控制之if结构

1.简单的if实例:

#!/bin/bash
var='/etc/init.d'
#var='/dev/sda'
if [ -d $var ]
then
echo "$var is directory"
elif [ -b $var ]
then
echo "$var is block"
elif [ -f $var ]
then
echo "$var is regular file"
else
echo 'unknow'
fi

执行效果:

2.向脚本传递参数

eg:

#3.sh
echo $0
echo $1
echo $2
echo $3
echo ${11}
echo '$$' $$
echo '$*' $*
echo '$@' $@
echo '$#' $#
echo '$?' $?

测试结果:

[root@localhost ~]# ./3.sh 1 2 3 4 5 6 7 8 9 10
./3.sh
1
2
3 $$ 8755
$* 1 2 3 4 5 6 7 8 9 10
$@ 1 2 3 4 5 6 7 8 9 10
$#
$? 0

二.循环结构之while

while (条件)

do
动作
done

需要无限循环时我们会选择while :
写个脚本 让用户输入,输入数字通过,输出错误重新输入

#!/bin/bash
login=0
while [ $login != 1 ]
do
read -p 'please input your name: ' name
read -p 'please input your password: ' pwd
if [ $name == 'egon' ] && [ $pwd == '' ]
then
echo 'login sucessful'
login=1
fi
done

运行及查看结果:

[root@localhost ~]# ./4.sh
please input your name: egon
please input your password: 123
login sucessful
[root@localhost gandong]#

三、循环结构之for

shell格式的for

for i in {1..10}
do
echo $i
done
[root@localhost ~]# ./5.sh
1
2
3
4
5
6
7
8
9
10

应用循环和条件判断写的一个实例:

vim 6.sh

while :
do read -p 'please input your name: ' name
read -p 'please input your password: ' psd
if [-z $name ] || [-z $psd ]
then
continue
fi
if [ $name = 'alex' -a $psd = 'alex3714' ]
then
echo 'login successful ,welcome da SB'
while :
do
read -p 'please input your cmd: ' cmd
if [ $cmd = 'quit' ]
then
break
fi
$cmd
done
else
echo 'username or password is error'
fi
done echo '========================================================' ~

四、函数知识点

交互shell中的函数

eg:

vim 7.sh
function abc() {
echo 'aaa';echo 'bbbb';
}
abc

运行结果:

[root@localhost ~]# vim 7.sh
[root@localhost ~]# ./7.sh
aaa
bbbb

Linux基础(6)的更多相关文章

  1. Linux基础练习题(二)

    Linux基础练习题(二) 1.复制/etc/skel目录为/home/tuer1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@www ~]# cp -r ...

  2. 大数据每日干货第四天(linux基础之一目录结构与常用命令)

           为了和qq空间同步,也写的第四天,前面几天明天会发布,本来打算把每天学的东西记录下来,通过朋友给的建议要发的话稍微系统化下,从大数据需要的linux基础,到离线数据分析包括hadoop. ...

  3. Linux课程实践一:Linux基础实践(SSH)

    一.SSH服务 1. 安装SSH (1)查看是否已经安装过ssh服务 rpm -qa |grep ssh (2)进行安装 sudo apt-get install openssh-server Ubu ...

  4. 还是不想改报告,伊阿忆啊哟-Linux基础继续

    hi 虽然今天是最最美好的周六(前不着工作日后不着工作日),但老子还要来改报告,但额就是不想改,你拿我有啥办法啊... 争取完结Linux基础 一.Linux常用命令(三) 4.帮助命令 4.1 帮助 ...

  5. 原来今天是感恩节-Linux基础继续&MySQL和PHP

    hi 原来今天是感恩节.虽然一直没有过这个节日的习惯,但仅仅是听到感恩的消息,都能想到一幅幅画面.愿大家安好! 下午开题会议还是有所收获,悄悄的,就变向那个不喜欢自己的人了. 一.Linux基础(二) ...

  6. 买错的电影票,含着泪也得看-LAMP搭建&Linux基础

    hi 没说过,上周五室友过生请客,在龙湖里吃嗨了喝爽了,回去的路上侃侃而谈.说好的这周一起去看年内最后的大片,火星救援的,谁知道老子眼神不好,买错了电影的时间...把周六的约定提前到了今儿个下午,ma ...

  7. Linux基础3(文件权限)

    文件权限 1.普通权限 (登陆用户对文件或目录的读写执行的权限) 普通权限对管理员用户无效 文件和目录 都有4中类型的用户u 所有者 : 文件.目录的创建者g 所属组 : 文件.目录属于的用户组o 其 ...

  8. Linux课程实践一:Linux基础实践(基础操作)

    一.软件源维护 1. 基本操作 (1)查看源列表 sudo vim /etc/apt/sources.list deb:二进制软件安装包 deb-src:源码包 (2)备份软件源列表 sudo cp ...

  9. 实践一:Linux基础实践

    一.Linux基础实践 1.1 1. 掌握软件源的维护方法,配置系统使用软件源镜像.掌握通过软件源来查找,安装,卸载,更新软件的方法. 这部分内容在许多学长学姐的报告里都有很详细的讲解,我在此就不赘述 ...

  10. Linux基础精华

    Linux基础精华 (继续跟新中...) 常用命令: Linux shell 环境 让你提升命令行效 率的 Bash 快捷键 [完整版] 设置你自己的liux alias Linux的Find使用 L ...

随机推荐

  1. Gradle之恋-命令行详解

    虽然很多童鞋都必须要用IDE,但有些命令是IDE很难表现出来的,还是命令行返璞归真.本文就带你来剖析Gradle的命令行. 本文不包括试验性(incubating)的选项,如--configure-o ...

  2. poolingHttpclientConnectionmanager 使用

    在阅读 netflix zuul 的simpleHostRoutingFilter 中,发现了一些问题. 主要是关于poolingHttpclientConnectionmanager. 在寻找其中的 ...

  3. Android两种为ViewPager+Fragment添加Tab的方式

    在Android开发中ViewPager的使用是非常广泛的,而它不仅仅能够实现简单的开始引导页,还可以结合Fragment并添加Tab作为选项卡或为显示大批量页面实现强大的顺畅滑动 下面介绍两种为Vi ...

  4. linux性能监控分析及通过nmon_analyse生成分析报表

    nmon是一款分析 AIX 和 Linux 性能的免费工具 nmon 工具还可以将相同的数据捕获到一个文本文件,便于以后对报告进行分析和绘制图形.输出文件采用电子表格的格式 (.csv). 性能介绍 ...

  5. javascript 将数字(金额)转成大写

    将计算好的金额转换成大写,这些功能非常多,下面我改进了一下代码(原文在这里:http://www.cnblogs.com/zsanhong/p/3509464.html). /** * _SetNum ...

  6. iOS性能之其他

    本篇文章是个引用,因为这些技术我都只是研究过,但是并没有在项目中使用,也没有深入研究,所以只能当做一个笔记了 网络请求 现在大多数的网络请求都是使用的json格式(相信没有APP再使用XML格式了吧) ...

  7. Android基本控件和事件以及消息总结

    Android学生空间界面设计涉及到的常用基本控件有TextView,EditText,Button,ImageView,CheckBox,RadioButton,基本事件有触屏和键盘事件,包括onT ...

  8. ATS来了,网页HTTP访问怎么办?

    推荐理由 ATS(App Transport Security),是苹果在WWDC 15提出的,苹果将收紧http的访问,这样会造成我们周边的许多站点和应用均不能正常访问,这里就对ATS进行了简单分析 ...

  9. NPOI扩展--判断指定单元格是否为合并单元格和输出该单元格的行列跨度(维度)

    因工作需要用到跨合并单元格获取数据,所以写了个NPOI扩展类. 主要方法如下: 1.判断指定行/列索引(单元格)是否为合并单元格. 2.获取指定列索引的实际含有数据的单元格. 3.返回指定行/列索引的 ...

  10. jemeter正则表达式