Shell入门编程进阶篇

前言

上一篇小编已简单介绍了Shell入门编程基础知识,今天小编继续和大家一起继续探讨学习Shell编程,本文主要内容如下:

1、运算符与条件判断
2、流程控制
3、函数
4、Shell工具

第一部分:运算符与条件控制

在我编写学习的记忆脑海中,运算符是个简单但应用广泛的知识点。不过对于简单的知识点也不可忽视,小编接着上一篇“Shell入门编程基础篇”继续聊聊,现在开始说说运算符吧。

1、运算符

1.1 基本语法

(1)"$((运算式))"或"$\[运算式\]"

(2expr +,-,\\\*,/,% 加,减,乘,除,取余

1.2 脚本实例

#!/bin/bas# 1、计算3+2expr 2 + 3# 2、计算3+2expr 3 - 2# 2、计算(2+3)X4的值expr `expr 2 + 3` \* 4 # expr一步完成计算S = $[(2+3)*4]  # 采用$[运算式]方式echo $S
复制代码

2、条件判断

2.1 基本语法

[ condition ](注意condition前后要有空格)

注意:条件非空即为true,[ hxfbigdata666 ]返回true,[] 返回false。

2.2 常用判断条件

图片

具体运算符的例子详见:菜鸟教程Shell教程,自行百度。

第二部分:流程控制(重点)

流程控制是学习重点,几乎所有Shell脚本都会有的,主要有四种:if判断、case 语句、for循环、while循环,下面我们分别讲讲。

1、if判断

1.1 基本语法

if [ 条件判断式 ];then 
  程序 
fi 
或者 
if [ 条件判断式 ] 
  then 
    程序 
复制代码

注意事项:

(1) [ 条件判断式 ],中括号和条件判断式之间必须有空格

(2) if后要有空格

1.2 脚本实例

#!/bin/bash

# 输入一个数字,如果是1,则输出"大数据工作,真香!"
# 如果是2,则输出"大数据工程师,太厉害啦!"
if [ $1 -eq "1" ]
then
        echo "大数据工作,真香!"
elif [ $1 -eq "2" ]
then
        echo "大数据工程师,太厉害啦!"
fi
复制代码

2、case语句

2.1 基本语法

case $变量名 in 
  "值1") 
    如果变量的值等于值1,则执行程序1 
    ;; 
  "值2") 
    如果变量的值等于值2,则执行程序2 
    ;; 
  …省略其他分支… 
  *) 
    如果变量的值都不是以上的值,则执行此程序 
    ;; 
esac
复制代码

2.2 脚本实例

#!/bin/bash

# 输入一个数字,如果是1,则输出"大数据工作,真香!"
# 如果是2,则输出"大数据工程师,太厉害啦!"
# 如果是其它,输出"大数据太难学啦,老子还是回去搬砖快活!"
!/bin/bash

case $1 in
"1")
        echo "大数据工作,真香!"
;;

"2")
        echo "大数据工程师,太厉害啦!"
;;
*)
        echo "大数据太难学啦,老子还是回去搬砖快活!"
复制代码

3、for循环

3.1 基础语法

# 语法1
for (( 初始值;循环控制条件;变量变化 )) 
  do 
    程序 
  done
# 语法2
for 变量 in 值1 值2 值3… 
  do 
    程序 
  done
复制代码

3.2 脚本实例

#!/bin/bash

# 实例1:求1加到100的和
s=0
for((i=0;i<=100;i++))
do
        s=$[$s+$i]
done
echo $s

#!/bin/bash
#实例2:打印参数
for i in $*
    do
      echo "大数据太牛啦!$i "
    done
复制代码

4、while循环

4.1 基础语法

while [ 条件判断式 ] 
  do 
    程序
  done
复制代码

4.2 脚本实例

#!/bin/bash

# 求1加到100的和
s=0
i=1
while [ $i -le 100 ]
do
        s=$[$s+$i]
        i=$[$i+1]
done

echo $s
复制代码

第三部分:函数

函数分为:系统函数和自定义函数

1、系统函数
basename、dirname等,用的不多就不详细介绍啦。

2、自定义函数

2.1 基本语法

[ function ] funname[()]
{
  Action;
  [return int;]
}
funname
复制代码

2.2 经验技巧

(1) 必须在调用函数地方之前,先声明函数,shell脚本是逐行运行。不会像其它语言一样先编译。

(2)函数返回值,只能通过$?系统变量获得,可以显示加:return返回,如果不加,将以最后一条命令运行结果,作为返回值。return后跟数值n(0-255)。

2.3 脚本实例

#!/bin/bash

# 计算两个输入参数的和
function sum()
{
    s=0
    s=$[ $1 + $2 ]
    echo "$s"
}

# read读取控制台输入
read -p "Please input the number1: " n1;
read -p "Please input the number2: " n2;
sum $n1 $n2;
复制代码

第四部分:Shell工具

Shell工具对于Shell运维人员来说,地位非常重要,务必熟练掌握。对于大数据工程师来说,就显得没那么重要啦,知道有这东西就行啦,用到就去百度。常用的Shell工具如下:

1、cut:cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出。

2、sed:是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。

3、awk:一个强大的文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理。

4、sort:sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出。

以上内容详细介绍参见以下博文:blog.csdn.net/zzqq12345/a…
更多精彩内容,请关注公众号:小韩学长带你学

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享