编写Shell脚本

如果可以在shell中输入命令,那么你就可以使用shell脚本。所谓的shell脚本,就是将一系列的命令写在一个文档中,然后让shell从该文件中读取命令,就像是从终端进行读取一样。
Shell脚本的工作方式主要有两种:交互式和批处理。

  • 交互式:用户每输入一条命令就立即执行。
  • 批处理:由用户事先编写好一个完整的Shell脚本,Shell会一次性地执行脚本中的诸多命令。

1.用bash解释器命令运行脚本文件
创建脚本文件

qi:desktop ZB$ vim example.sh

脚本中的内容:

#!/bin/bash
#For Example BY ZB.com
pwd 
ls -al

第一行的脚本声明(#!)用来告诉系统使用哪种Shell解释器来执行脚本;
第二行的注释信息(#)是对于脚本功能和某些命令的介绍信息,使得自己或他人在日后看到这个脚本文件的时候,可以快速知道该脚本的作用或一些警告信息。
第三、四行的可执行语句就是我们平时执行的Linux命令了 。

执行脚本程序:

qi:desktop ZB$ bash example.sh
/Users/ZB/desktop
total 2778568
drwxr-xr-x@   4 ZB  staff        136  3 17  2018 $RECYCLE.BIN
drwx------+  29 ZB  staff        986 11 16 20:12 .
drwxr-xr-x@  46 ZB  staff       1564 11 16 20:12 ..
-rw-r--r--@   1 ZB  staff      24580 11 16 18:16 .DS_Store
-rw-------    1 ZB  staff      12288 11 16 17:01 .lhj.c.swp
-rw-r--r--    1 ZB  staff          0  7 14  2017 .localized
drwxrwxrwx   25 ZB  staff        850  8 10  2017 Eclipse版本源码
drwxr-xr-x   16 ZB  staff        544  6 30 16:07 FinallyHomeWork
-rw-r--r--@   1 ZB  staff     130560  6 10 13:07 Thumbs.db
drwxrwxrwx@   7 ZB  staff        238 11 15 11:10 VarDict-1.5.7
-rw-r--r--@   1 ZB  staff       2592  7  3 19:53 ViewGroup.rtf
-rw-r--r--    1 ZB  staff      39785  6 24 17:07 Westworld.S02E01.Journey.Into.Night.720p.AMZN.WEB-DL.DDP5.1.H.264-NTb.简体&英文.docx
-rw-r--r--@   1 ZB  staff  711156927 11 10 22:38 cd1.mp4
-rw-r--r--@   1 ZB  staff  711150870 11 10 22:50 cd2.mp4
-rw-r--r--@   1 ZB  staff        282  4 19  2018 desktop.ini
-rw-r--r--@   1 ZB  staff       1939  2 12  2018 eclipse - 快捷方式.lnk
-rw-r--r--    1 ZB  staff         48 11 16 20:12 example.sh
-rw-r--r--@   1 ZB  staff        751  6  9 21:41 recyclerview依赖.rtf
drwxr-xr-x@  17 ZB  staff        578  7  4 22:34 ui
drwxr-xr-x   84 ZB  staff       2856  2  2  2018 vs
drwxr-xr-x   10 ZB  staff        340  3  2  2018 错误
drwxr-xr-x  259 ZB  staff       8806  1 14  2018 保定&泰安
-rw-r--r--@   1 ZB  staff        544  7  4 02:18 图标.rtf
-rw-r--r--@   1 ZB  staff       2113  7  1 17:17 日报.rtf
-rw-r--r--@   1 ZB  staff        882  7  4 10:10 安卓AS快捷键.rtf
drwxrwxrwx   14 ZB  staff        476 11 16 16:32 栾海晶
-rw-r--r--@   1 ZB  staff      52473 11  4 23:41 未命名.rtf
drwxr-xr-x   12 ZB  staff        408  6 24 16:28 西部世界
drwxr-xr-x   75 ZB  staff       2550  2 19  2018 过年姥爷家

2.通过输入完整的路径的方式来执行

qi:desktop ZB$ ./example.sh
-bash: ./example.sh: Permission denied

因为权限不足而提示报错信息。

qi:desktop ZB$ chmod u+x example.sh
qi:desktop ZB$ ./example.sh
/Users/ZB/desktop
total 2778568
drwxr-xr-x@   4 ZB  staff        136  3 17  2018 $RECYCLE.BIN
drwx------+  29 ZB  staff        986 11 16 20:12 .
drwxr-xr-x@  46 ZB  staff       1564 11 16 20:12 ..
-rw-r--r--@   1 ZB  staff      24580 11 16 18:16 .DS_Store
-rw-------    1 ZB  staff      12288 11 16 17:01 .lhj.c.swp
-rw-r--r--    1 ZB  staff          0  7 14  2017 .localized
drwxrwxrwx   25 ZB  staff        850  8 10  2017 Eclipse版本源码
drwxr-xr-x   16 ZB  staff        544  6 30 16:07 FinallyHomeWork
-rw-r--r--@   1 ZB  staff     130560  6 10 13:07 Thumbs.db
drwxrwxrwx@   7 ZB  staff        238 11 15 11:10 VarDict-1.5.7
-rw-r--r--@   1 ZB  staff       2592  7  3 19:53 ViewGroup.rtf
-rw-r--r--    1 ZB  staff      39785  6 24 17:07 Westworld.S02E01.Journey.Into.Night.720p.AMZN.WEB-DL.DDP5.1.H.264-NTb.简体&英文.docx
-rw-r--r--@   1 ZB  staff  711156927 11 10 22:38 cd1.mp4
-rw-r--r--@   1 ZB  staff  711150870 11 10 22:50 cd2.mp4
-rw-r--r--@   1 ZB  staff        282  4 19  2018 desktop.ini
-rw-r--r--@   1 ZB  staff       1939  2 12  2018 eclipse - 快捷方式.lnk
-rwxr--r--    1 ZB  staff         48 11 16 20:12 example.sh
-rw-r--r--@   1 ZB  staff        751  6  9 21:41 recyclerview依赖.rtf
drwxr-xr-x@  17 ZB  staff        578  7  4 22:34 ui
drwxr-xr-x   84 ZB  staff       2856  2  2  2018 vs
drwxr-xr-x   10 ZB  staff        340  3  2  2018 错误
drwxr-xr-x  259 ZB  staff       8806  1 14  2018 保定&泰安
-rw-r--r--@   1 ZB  staff        544  7  4 02:18 图标.rtf
-rw-r--r--@   1 ZB  staff       2113  7  1 17:17 日报.rtf
-rw-r--r--@   1 ZB  staff        882  7  4 10:10 安卓AS快捷键.rtf
drwxrwxrwx   14 ZB  staff        476 11 16 16:32 栾海晶
-rw-r--r--@   1 ZB  staff      52473 11  4 23:41 未命名.rtf
drwxr-xr-x   12 ZB  staff        408  6 24 16:28 西部世界
drwxr-xr-x   75 ZB  staff       2550  2 19  2018 过年姥爷家

脚本可以接收用户传进来的参数

创建脚本文件

qi:desktop ZB$ vim example.sh

脚本中的内容:

#!/bin/bash
echo "当前脚本的名称是$0"
echo "总共有$#个参数,分别是$*。"
echo "第一个参数为$1,第五个为$5。"

$0代表的是当前脚本的名称。
$#代表有几个参数。
$*代表所有位置的参数值。
$?显示上一次命令的执行返回值。
$1、$2、$3···代表的是第N个位置的参数值。

执行脚本程序:

qi:desktop ZB$ sh example.sh one two three four five six 
当前脚本的名称是example.sh
总共有6个参数,分别是one two three four five six。
第一个参数为one,第五个为five。

补充知识:
一、KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲、n 、$0、 @ 、 @、 @*的区别

$#:统计脚本中所有参数的个数
$*:对应参数的值
$n:n>=1 对应于第n个参数的值
$0:表示相应的脚本名称。例如下图的countpeople.sh
$@:会显示出所接受的所有参数。

在这里插入图片描述
在这里插入图片描述
二、条件判断函数的编写。
在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值