1 区分大小写

UNIX是区分大小写的,因此shell脚本也是区分大小写的

2 特殊字符

UNIX的某些字符都有特殊的意义或功能,如果它们不以其特殊的意义使用必须要进行转义(escaped)。

为了转义它们需要用反斜杠或者单引号括起来。

3 shell

shell(命令行解释器)是一个能够用来运行命令、程序和shell脚本的环境。

4 shell脚本

shell脚本就是命令的有机组合。

shell脚本和函数都是解释型的,ASCII文本,不能被编译。

5 函数

函数的编写和脚本的编写类似,不同之处在于函数是在脚本中定义和调用。

函数形式如下:

function function_name
{
commands to execute
}

或者

function_name ()
{
commands to execute
}

在函数被调用前要对其进行声明或者定义,函数部分必须出现在调用函数的命令语句之前。

6 运行shell脚本

如果不采用对应的shell来运行则需要加上可执行权限

7 shell脚本中的注释和风格

良好的注释和代码编写风格对于可读性很重要

8 控制结构

if ... then

if ... then ... else

if ... then ... elif ... (else)

for ... in

while

until

case

9 使用break、continue、exit和return语句

10 here文档

here文档用于输入重定向到某个交互式shell脚本或程序。

11 shell脚本命令

表 1 UNIX命令概述

此处应该有表

12 符号命令

表2中的符号实际上是命令。

表 2 符号命令

此处应该有表

13 变量

变量是可以进行赋值的字符串,可以给的值包括数字、文本、文件名、设备或其他任何类型的数据。

为了访问变量所指代的数据需要在变量前加一个$,而且不能有空格。

14 命令行参数

命令行参数$1,$2,$3,...,$9是位置参数,$0指向实际的命令、程序、shell脚本或函数。

在一个函数中的$0,$2等由函数本身使用,可能不会在调用函数的shell脚本环境中出现。

15 shift命令

shfit命令用于将位置参数向左移动,例如shift命令使得$2成为$1。

也可以使用shift移动多个位置,shift 3使得$4移动到$1的位置。

16 特殊参数$*和$@

$*和$@允许一次访问所有的命令行参数。

除非使用双括号把它们括起来,否则$*和$@具有相同的功能。

"$*"将整个参数列表作为一个参数来获取

"$@"获取整个参数列表,并将其分割成不同的参数

17 双引号"、符号'和`

在允许字符替换或命令替换的语句中,可以使用双引号,定义包含空格的变量也需要使用双引号"

不允许字符替换或命令替换的语句中可以使用'。使用'括起来的目的是希望使用正文文本,而不进行任何替换。

在希望执行某个命令或脚本并替换其输出结果使用`。

18 在Solaris中使用awk

Solaris中的awk为nawk,在写脚本的时候可以加入如下代码

case $(uname) in
SunOS) alias awk=nawk
;;
esac

19 正确使用echo命令

比如在有的shell中,echo -e "\n"换行

有的是echo "\n"就可以了

如果脚本使用的*/bin/bash,可以添加如下语句

case $SHELL in
*/bin/bash ) alias echo="echo -e"
;;
esac

20 shell脚本中的数学

21 内置的数学函数

22 文件权限、suid和sgid程序

23 在远程主机上运行命令

24 设置陷阱

若某个程序在其正常结束之前被终止,通常情况下可以捕捉到一个退出信号。

该退出信号称为一个陷阱(trap)。

25 用户信息命令

who

w

last

26 ps命令

ps可以显示当前系统进程的信息

jps是jdk提供的一个查看当前java进程的小工具

27 与用户通信

28 统一大写或小写文本以方便测试

tr和typeset

29 检测返回代码

运行任何命令时,系统都会返回一个有关前一条命令被执行命令的响应,称为返回代码(return code)。

Shell脚本编程入门到放弃的更多相关文章

  1. 08 bash特性--shell脚本编程入门

    shell脚本编程入门 编程语言介绍 编程语言分为:机械语言.汇编语言和高级语言: 计算机能识别的语言为机械语言,而人类能学习的并且能够方便掌握的为高级语言,所以,我们所编写的程序就要通过编译来转换成 ...

  2. shell脚本编程入门

    Linux的Shell种类众多,这里我们关注的重点是Bash. 基本语法 环境变量$PATH IO重定向:  以<改变标准输入 如:tr -d '\r' < dos-file.txt 以& ...

  3. Shell脚本编程入门(一) 分类: 学习笔记 linux ubuntu 2015-07-09 21:06 29人阅读 评论(0) 收藏

    最近在学shell,记录一下. if语句的使用: 1.判断两个参数大小 #!/bin/sh #a test about if statement a=10 b=20 if [ $a -eq $b ]; ...

  4. Shell脚本编程入门(一)

    最近在学shell,记录一下. if语句的使用: 1.判断两个参数大小 #!/bin/sh #a test about if statement a=10 b=20 if [ $a -eq $b ]; ...

  5. 5个Shell脚本编程入门练习例子

    例子一:绘制特殊图形 复制代码代码如下: #!/bin/bash MAX_NO=0 echo -n "Enter Number between (5 to 9) : " read ...

  6. Shell脚本编程30分钟入门

    Shell脚本编程30分钟入门 转载地址: Shell脚本编程30分钟入门 什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_t ...

  7. Shell脚本编程学习入门 02

    Shell脚本编程学习入门是本文要介绍的内容,我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行):   #! ...

  8. Shell脚本编程学习入门 01

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...

  9. Shell脚本编程30分钟入门(小结)(转)

    原文链接https://www.jb51.net/article/161028.htm 什么是Shell脚本 Shell脚本(英语:Shell script),又称Shell命令稿.程序化脚本,是一种 ...

随机推荐

  1. 如何高效的阅读hadoop源代码?

    个人谈谈阅读hadoop源代码的经验. 首先,不得不说,hadoop发展到现在这个阶段,代码已经变得非常庞大臃肿,如果你直接阅读最新版本的源代码,难度比较大,需要足够的耐心和时间,所以,如果你觉得认真 ...

  2. eclipse中英文版转换(前提:有中文包)

    均为命令行启动(一次就可以) 中文版启动:eclipse.exe -nl zh 英文版启动:eclipse.exe -nl en

  3. IntelliJ Idea解决Could not autowire. No beans of 'xxxx' type found的错误提示

    本文转自:http://blog.csdn.net/u012453843/article/details/54906905 1.问题描述 在Idea的spring工程里,经常会遇到Could not ...

  4. Tomcat路径下目录的介绍

           本文转自:http://blog.csdn.net/u013132035/article/details/54949593 下图是TOMCAT的路径下目录的截图. 目录有:backup. ...

  5. Python学习笔记012——装饰器

    1 装饰器 1.1装饰器定义 在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator). 1.2 装饰器分类 装饰器:函数装饰器,类装饰器,函数的装饰器,类的装饰器 装饰器:函数装饰函 ...

  6. struts2.xml中所有constant详解--大全

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-/ ...

  7. mysql 数据表的引擎 MyISAM 和 InnoDB

    需要使用锁和事务时,必须使用InnoDB模式 可以通过以下语句查看表的类型 SHOW TABLE STATUS FROM [DATABASE_NAME] 修改数据表的引擎类型: navicat: 设计 ...

  8. Android开发6——布局中的wrap_content和fill_parent以及match_parent

    一.言简意赅 fill_parent 是让控件宽或者高占全屏 wrap_content是让控件的高或宽仅仅把控件里的内容包裹住而不是全屏 二.分别来看  1 fill_parent 设置一个构件的布局 ...

  9. ps换衣服

    1.抠衣服->给衣服新建图层(ctrl+j)->给图层去色,让衣服边黑白色.2.剪贴蒙版(上图:大花布,下形:衣服).作用:大花布替换成衣服3.大花布图层->叠加图层样式或其它图层样 ...

  10. ASP.NET Web API 中 特性路由(Attribute Routing) 的重名问题

    刚才忘了说了,在控制器名重名的情况下,特性路由是不生效的.不然的话就可以利用特性路由解决同名的问题了. 而且这种不生效是真的不生效,不会提示任何错误,重名或者什么的,直接会报告404,所以也是个坑.