1. 脚本是一个包含一系列命令序列的文本文件,当运行这个脚本文件时,文件中包含的命令序列将得到执行。

2. 脚本主要由两部分组成:脚本解释器和命令序列

注:#!/bin/bash 指明脚本解释器为Bash Shell

3. Shell脚本允许用户设置和使用自己的变量,变量可以使数字或者字符串,用户无需指定其类型,也无需在使用前定义。

注:(1)定义时无需加"$"

(2)赋值“=”左右不能有空格

(3)注释用“#”

4. 同C程序一样,Shell脚本也可以使用命令行参数

(1)$#:传入脚本的命令行参数个数

(2)$*:所有命令行参数值,在各个参数值之间留有空格

(3)$0:第0个命令行参数,命令行本身(Shell文件名)

(4)$1:第1个命令行参数

5. Shell脚本提供了一个专门的命令expr来计算数学表达式。例如expr 5+1,当要把计算的结果赋值给其他变量时,还需要用反引号:·`expr 5+1`

6. 条件比较(操作符两边必须有空格)

(1)比较

(2)条件

① -r file:文件对当前用户可以读取

② -w file:文件对当前用户可以写入

③-x file:文件对当前用户可以执行

④ -f file:文件是普通文件

⑤ -d file:文件是一个目录

⑥ -c file:文件是字符设备文件

⑦ -b file:文件是块设备文件

⑧ -s file:文件大小不为0

⑨ -t file:文件的描述符指定的设备为终端

⑩ -e file:文件已经存在

⑪ -a:与

⑫ -o:或

⑬ !:非

7. Shell脚本中最基本的流程控制语句就是if-then,使用格式如下

if [ condition ]

then

  commands

else

  commands

fi

注:方括号左右两边必须有空格

8. Shell脚本提供了for命令,用于创建类似C语言编程中for语句一样的循环,使用格式如下

for var in list

do

  commands

done

9. Shell脚本提供了while命令,用于创建类似C语言编程中while语句一样的循环,使用格式如下

while condition

do

  commands

done

10. Shell脚本提供了case命令,用于创建类似C语言编程中switch语句一样的分支控制,使用格式如下

case var in

  mode1) command1;command2;;

  mode2) command1;command2;;

esac

(1)示例代码

#!/bin/sh -e

while [ $# -gt  ] ; do
echo "----argv[1] = $1"
case "$1" in
--) shift ; break ;;
-a) shift ; APPEND=yes ;;
-n) shift ; BOARD_NAME=$ ; shift ;;
*) break ;;
esac
echo "argv[1] = $1"
done
echo "APPEND=${APPEND}"
echo "BOARD_NAME=${BOARD_NAME}"

(2)Mode支持正则表达式,可以用以下字符

  *    任意字符串

  ?    任意字符

  [abc]  a,b,c三个字符其中之一

  [a-n]  从a到n的任一字符

  |    多重选择

11. Sed(Stream Editor):流式编辑器,又名行编辑器,每次只编辑一行

12. Awk是一个强大的文本分析工具

Linux Shell脚本编程基础的更多相关文章

  1. Linux shell脚本编程基础之练习篇

    shell脚本编程基础之练习篇. 1.编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息. #!/bin/bash ] then echo "请输入一个参数& ...

  2. Linux Shell脚本编程-基础1

    概述:  shell脚本在Linux系统管理员的运维工作中非常重要.shell脚本能够帮助我们很方便的管理服务器,因为我们可以指定一个任务计划,定时的去执行某一个脚本以满足我们的需求.本篇将从编程基础 ...

  3. Linux Shell脚本编程基础(11)

    实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核,不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序.Shel编程语言具有普通编程 ...

  4. Linux Shell脚本编程-基础2

    命令退出状态码  bash每个命令,执行状态都有返回值 0表示成功 非0表示失败(1-255) $?特殊变量可以打印出上一条命令的状态返回值 脚本的状态返回值是脚本执行的最后一条命令 自定义脚本状态返 ...

  5. linux基础—课堂随笔_03 SHELL脚本编程基础

    shell脚本编程基础 条件选择:if语句 选择执行: 注意:if语句可嵌套 单分支 if(开头)判断条件:then条件为真的分支代码 fi(结尾) 双分支 if(开头)判断条件:then条件为真的分 ...

  6. SHELL脚本编程基础知识

    SHELL脚本编程基础知识 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Linux之父Linus有一句话很经典:"Talk is cheap, show me the ...

  7. shell脚本编程基础介绍

    Linux系统——shell脚本编程基础介绍 1.什么是shell 它是一个命令解释器,在linux/unix操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种操作输出的结果 ...

  8. Linux shell脚本编程(三)

    Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...

  9. Linux shell脚本编程(二)

    Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...

随机推荐

  1. 树状数组 - 2352 Stars

    题目地址: http://poj.org/problem?id=2352 分析: - 题意分析:  有n个星星, 它的左下方(x和y不超过它)的星星的数目就是它的level, 分别计算level 为 ...

  2. spring mvc 集成hibernate步骤

    今天从头把hibernate集成进入springMVC框架中,把过程记录下来. 1.首先要在监听器配置文件中加入hibernate支持,如下: <?xml version="1.0&q ...

  3. PrintWriter类

    PrintWriter是一种过滤流,也是一种处理流,即能对字节流和字符流进行处理. 1.查询API后,我们发现,会有八种构造方法.即: PrintWriter(File file) Creates a ...

  4. OpenCV4Android安装

    转:http://blog.csdn.net/gao_chun/article/details/49359535 1.下载及目录介绍 2.将 OpenCV引入 Android Studio 3.更新 ...

  5. ioctlsocket()函数是干什么用的?它返回值是什么?共有几个参数?它的各个参数是干什么用的?

    1. ioctlsocket()  简述:   控制套接口的模式. #include <winsock.h> int PASCAL FAR ioctlsocket( SOCKET s, l ...

  6. delphi中的sql语句中空格问题

    sql语句中的冒号 ‘’,在delphi中需要用四个冒号表示 ‘’‘’,delphi中的两个冒号只代表一个冒号

  7. 在Android模拟器里安装apk

    [原文]http://Android.tgbus.com/android/tutorial/201104/349532.shtml 1.运行SDK Manager,选择模拟器,并运行模拟器. 2.将需 ...

  8. XE7 & FMX 那些年我们一起上过的控件:StringGrid 之(1) 自定义标题样式

    FMX下的Grid类控件似乎不太尽如人意,可能是和官方的资料没有跟得上它的发行版本有关系. 以下讨论StringGrid的列表头及对齐方式. 先上个效果图: FMX的列表头估计很多人都是用盒子上流传甚 ...

  9. Android 画指南针

    1.无意看到了一个指南针的UI,在这里简单的模仿了一下.其实就是第画布的一些变化而已. 别人的效果图是: 3.简单说一下思路: 1)首先是画一个黑色圆盘 2) 然后画圆盘上的刻度(就是对Canvas一 ...

  10. Win8共享wifi热点设置

    Win8共享wifi热点如何设置?大家都知道win7系统可以实现wifi热点共享,那么win8应该也能实现wifi热点共享,那么如何设置win8不需要任何软件只需要对电脑进行设置就可以共享无线上网. ...