Shell Script编写注意事项:
1.命令的执行是从上而下,从左至右地分析与执行。
2.命令执行中,命令与参数间的多个空白都会被忽略掉。
3.空白行也被将忽略掉,并且【tab】按键所得的空白同样视为空格键。
4.如果读取到一个Enter符号【CR】,就尝试开始执行该行(或该串)命令;
5.如果一行的命令太多,则可以使用“\[Enter]”来扩展至下一行;
6.“#”任何加载#后面的数据全部被视为批注文字而被忽略。
bin bash和 bin sh的区别
在shell脚本的开头往往有一句话来定义使用哪种sh解释器来解释脚本。两种声明的区别:
1.#!/bin/bash 声明当前script使用的shell名称,因为我们使用的是bash,所以必须使用#!/bin/bash来声明这个文件内的语法使用bash的语法。那么当这个程序被执行时,它就能够加载bash的相关环境配置文件(一般来说就是non-login shell的~/.bashrc),并且执行bash来使我们下面的命令能够执行。“#!”,这个表示声明shell。
2.#!/bin/sh,这个声明依赖于系统默认的bash,它是一个软连接。Linux中的shell有多种类型,其中最常用的几种是Bourne shell(sh)、C shell(csh)和Korn shell(ksh)。三种shell各有优缺点。Bourne shell是UNIX最初使用的shell,并且在每种UNIX上都可以使用。Bourne shell在shell编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种shell。Linux操作系统缺省的shell是Bourne Again shell,它是Bourne shell的扩展,简称Bash,与Bourne shell完全向后兼容,并且在Bourne shell的基础上增加、增强了很多特性。Bash放在/bin/bash中,它有许多特色,可以提供如命令补全、命令编辑和命令历史表等功能,它还包含了很多C shell和Korn shell中的优点,有灵活和强大的编程接口,同时又有很友好的用户界面。
范例学习
1.交互式脚本
主要是通过bash中的read命令来实现,允许用户输入相关信息,例如:
read -p "please input your first name:" firstnameecho -e "\n Your firstname is :$firstname"
2.随日期变化
3.数值运算
read -p "first number:" firstNumread -p "second number:" secNumtotal=$(($firstNum * $secNum))#declare -i total=$firstNum * $secNum
Script的执行方式区别(Source,shscript,./script)
1.直接执行的方式来执行script
2.利用source来执行脚本:在父进程中执行
判断式
1.test 命令的测试功能
2.利用判断符号[]