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…
更多精彩内容,请关注公众号:小韩学长带你学

免责声明:务必仔细阅读

  • 本站为个人博客,博客所转载的一切破解、path、补丁、注册机和注册信息及软件等资源文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。

  • 本站为非盈利性站点,打赏作为用户喜欢本站捐赠打赏功能,本站不贩卖软件等资源,所有内容不作为商业行为。

  • 本博客的文章中涉及的任何解锁和解密分析脚本,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断.

  • 本博客的任何内容,未经许可禁止任何公众号、自媒体进行任何形式的转载、发布。

  • 博客对任何脚本资源教程问题概不负责,包括但不限于由任何脚本资源教程错误导致的任何损失或损害.

  • 间接使用相关资源或者参照文章的任何用户,包括但不限于建立VPS或在某些行为违反国家/地区法律或相关法规的情况下进行传播, 博客对于由此引起的任何隐私泄漏或其他后果概不负责.

  • 请勿将博客的任何内容用于商业或非法目的,否则后果自负.

  • 如果任何单位或个人认为该博客的任何内容可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明至admin@proyy.com.我们将在收到认证文件后删除相关内容.

  • 任何以任何方式查看此博客的任何内容的人或直接或间接使用该博客的任何内容的使用者都应仔细阅读此声明。博客保留随时更改或补充此免责声明的权利。一旦使用并复制了博客的任何内容,则视为您已接受此免责声明.

您必须在下载后的24小时内从计算机或手机中完全删除以上内容.

您使用或者复制了本博客的任何内容,则视为已接受此声明,请仔细阅读


更多福利请关注一一网络微信公众号或者小程序

一一网络微信公众号
打个小广告,宝塔服务器面板,我用的也是,很方便,重点是免费的也能用,没钱太难了,穷鬼一个,一键全能部署及管理,送你3188元礼包,点我领取https://www.bt.cn/?invite_code=MV9kY3ZwbXo=


一一网络 » Shell入门编程进阶篇

发表评论

发表评论

一一网络-提供最优质的文章集合

立即查看 了解详情