Linux学习-什么是 Shell scripts

shell script 是利用 shell 的功能所写的一个“程序 (program)”,这个程 序是使用纯文本文件,将一些 shell 的语法与指令(含外部指令)写在里面, 搭配正则表达 式、管线命令与数据流重导向等功能,以达到我们所想要的处理目的。

干嘛学习 shell scripts

如果你是想要玩清楚 Linux 的来龙去脉, 那么 shell script 就不可不知,为什么呢?因为:

  • 自动化管理的重要依据

  • 追踪与管理系统的重要工作

  • 简单入侵侦测功能

  • 连续指令单一化

  • 简易的数据处理

  • 跨平台支持与学习历程较短

第一支 script 的撰写与执行

在 shell script 的撰写中还需要用到下面的注意事项:

  1. 指令的执行是从上而下、从左而右的分析与执行;
  2. 指令、选项与参数间的多个空白都会被忽略掉;
  3. 空白行也将被忽略掉,并且[tab]按键所推开的空白同样视为空白键;
  4. 如果读取到一个Enter符号(CR),就尝试开始执行该行(或该串)命令;
  5. 至于如果一行的内容太多,则可以使用“[Enter]”来延伸至下一行;
  6. “#”可做为注解!任何加在#后面的数据将全部被视为注解文字而被忽略!
  • 直接指令下达: shell.sh 文件必须要具备可读与可执行 (rx) 的权限,然后:

    • 绝对路径:使用 /home/dmtsai/shell.sh 来下达指令;
    • 相对路径:假设工作目录在 /home/dmtsai/ ,则使用 ./shell.sh 来执行
    • 变量“PATH”功能:将 shell.sh 放在 PATH 指定的目录内,例如: ~/bin/
  • 以 bash 程序来执行:通过“ bash shell.sh ”或“ sh shell.sh ”来执行

  • 撰写第一支 script

先写一支 script 给大家 瞧一瞧:

[dmtsai@study ~]$ mkdir bin; cd bin
[dmtsai@study bin]$ vim hello.sh
#!/bin/bash
# Program:
#       This program shows "Hello World!" in your screen.
# History:
# 2015/07/16	VBird	First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
echo -e "Hello World! \a \n"
exit 0

整个程序的撰写分成数段,大致是这样:

  1. 第一行#!/bin/bash在宣告这个script使用的shell名称:因为我们使用的是bash,所 以,必须要以“ #!/bin/bash ”来宣告这个文件内的语法使用 bash 的语法!那么当这个程 序被执行时,他就能够载入 bash 的相关环境配置文件 (一般来说就是 non-login shell 的 ~/.bashrc), 并且执行 bash 来使我们下面的指令能够执行。

  2. 程序内容的说明:整个script当中,除了第一行的“#!”是用来宣告shell的之外,其他的 # 都是“注解”用途! 所以上面的程序当中,第二行以下就是用来说明整个程序的基本数 据。一般来说, 建议你一定要养成说明该 script 的:1. 内容与功能; 2. 版本信息; 3. 作者与联络方式; 4. 创建日期;5. 历史纪录 等等。这将有助于未来程序的改写与 debug 呢!

  3. 主要环境变量的宣告:建议务必要将一些重要的环境变量设置好, 如此一来,则可 让我们这支程序在进行时,可以直接下达一些外部指令,而不必写绝对路径。

  4. 主要程序部分就将主要的程序写好即可!

  5. 执行成果告知(定义回传值)是否记得我们在第十章里面要讨论一个指令的执行成功与 否,可以使用 $? 这个变量来观察~ 那么我们也可以利用 exit 这个指令来让程序中断, 并且回传一个数值给系统。

撰写 shell script 的良好习惯创建

一定要养成良好的 script 撰写习惯,在每个 script 的文件开始处记录好:

  • script 的功能;
  • script 的版本信息;
  • script 的作者与联络方式;
  • script 的版权宣告方式;
  • script 的 History (历史纪录);
  • script 内较特殊的指令,使用“绝对路径”的方式来下达;
  • script 运行时需要的环境变量预先宣告与设置。

转载于:https://my.oschina.net/tucci/blog/1535898

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值