“Shell编程”的版本间的差异

来自软件实验室
跳转至: 导航搜索
基本的bash shell脚本示例
shell中的特殊字符
第30行: 第30行:
  
 
== shell中的特殊字符 ==
 
== shell中的特殊字符 ==
 +
=== 通配符 ===
 +
* *,圆点和路径符号必须显式匹配
 +
* ?
 +
* [字符组],比如f[abcd]匹配fa,fb,fc,fd,f[a-d],f[1-9]
 +
* !,比如f[!1-9]
 +
 +
=== 模式表达式 ===
 +
可以包含多个通配符,并支持扩展模式匹配:
 +
 +
* *(模式表),比如file*(.c|.o)匹配file,file.c,file.c.c,file.c.o,file.o.c,file.o.o等,不匹配file.h
 +
* +(模式表),比如file+(.c|.o)匹配file.c,file.o,file.c.o,file.c.c等,但是不匹配file
 +
* ?(模式表),file?(.c|.o)匹配file,file.c,file.o,不匹配file.c.o
 +
* @(模式表),file@(.c|.o)匹配file.c,file.o,不匹配file,file.c.c等
 +
* !(模式表),file!(.c|.o)匹配file,file.a,不匹配file.c,file.o
 +
 +
=== 引号 ===
 +
==== 双引号 ====
 +
由双引号括起来的字符均作为普通字符对待,$,`,\三个字符除外:
 +
 +
* $表示变量替换
 +
* `表示命令替换
 +
* \表示转义字符
 +
==== 单引号 ====
 +
==== 倒引号 ====
  
 
== shell变量 ==
 
== shell变量 ==

2015年11月5日 (四) 12:07的版本

shell概述

shell是一种高级程序设计语言

shell的特点

  • 组合命令成为心的命令
  • 允许灵活使用数据流,提供通配符、输入输出重定向、管道等机制
  • 结构化程序设计
  • 提供可配置的环境

shell的主要版本

csh/ksh/bash/ash/zsh,主流:bash

基本的bash shell脚本示例

#!/bin/bash
# very simple bash script
date
pwd
cd

shell脚本的文件扩展名通常为.sh,并具有可执行权限。

其中#!/bin/bash是必须的,表示调用/bin/bash解释下面的shell命令。

其中#开头的行为注释

shell脚本的执行

  • sh ./test.sh
  • chmod +x ./test.sh; ./test.sh

shell中的特殊字符

通配符

  • *,圆点和路径符号必须显式匹配
  •  ?
  • [字符组],比如f[abcd]匹配fa,fb,fc,fd,f[a-d],f[1-9]
  •  !,比如f[!1-9]

模式表达式

可以包含多个通配符,并支持扩展模式匹配:

  • *(模式表),比如file*(.c|.o)匹配file,file.c,file.c.c,file.c.o,file.o.c,file.o.o等,不匹配file.h
  • +(模式表),比如file+(.c|.o)匹配file.c,file.o,file.c.o,file.c.c等,但是不匹配file
  •  ?(模式表),file?(.c|.o)匹配file,file.c,file.o,不匹配file.c.o
  • @(模式表),file@(.c|.o)匹配file.c,file.o,不匹配file,file.c.c等
  •  !(模式表),file!(.c|.o)匹配file,file.a,不匹配file.c,file.o

引号

双引号

由双引号括起来的字符均作为普通字符对待,$,`,\三个字符除外:

  • $表示变量替换
  • `表示命令替换
  • \表示转义字符

单引号

倒引号

shell变量

shell控制结构

if语句

条件测试

while语句

shell函数

作业控制

shell内置命令

shell脚本调试技术