Bash shell的构成
来源:互联网 发布:java web项目开发文档 编辑:程序博客网 时间:2024/06/11 10:58
1、shbang行 “shbang”行是脚本的第一行,它让内核知道使用哪种shell来解释脚本中的行,shbang行是由一个#!后面再加上shell的完整路径组成的,在其后还可以再跟上各种选项用来控制shell的行为:
- #!/bin/bash
2、注释 注释由一个符号#后面跟一些描述行的说明组成,它们可以从行的任意位置开始,到行的末尾结束:
- #!/bin/bash
- #example comment1
- #example comment2
- #example comment3
3、通配符 shell中有些字符具有特殊意义,它们被称为shell的元字符或者通配符,这些字符既不是数字也不是字母,如果*、?、[、]、<、>、2>、>>、|等,*、?、[、]符号通常用于文件名的扩展,而<、>、2>、>>、|这些符号则用于标准I/O的重定向和管道,为了避免这些特殊字符被shell解释,它们必须被应用:
- #!/bin/bash
- #example comment1
- #example comment2
- #example comment3
- rm *
- ls ??
- cat file[1-3]
- echo "how are your?"
4、显示输出 echo命令用于向屏幕显示输出信息,此时通配符必须使用反斜杠或者配对引号进行转义:
- echo "how are you?"
5、局部变量 局部变量的作用域被限制在当前的shell(进程)中,当这个脚本执行结束后,就超出了局部变量的作用域,它们就不可以再使用了。shell内置的declare命令可以用来定义局部变量,可以创建局部变量并为其赋值:
- variable_name=value
- declare variable_name=value
- name="john doe"
- x=5
6、全局变量 全局变量又称为环境变量,它们由内置的export命令创建。它们为当前运行的shell(进程)以及由此shell(进程)派生的所有子进程创建,当脚本执行结束后,这些全局变量也超出作用域。带-x选项的内置命令declare也用于设置环境变量,并且将其导出(export):
- export VARIABLE_NAME=value
- export PATH=/bin:/usr/bin:.
- declare -x VARIABLE_NAME=value
注意:在局部变量和全局变量定义、赋值时,变量名与赋值符号之间不能有空格,赋值符号与变量值之间也不能有空格:
variable_name=value 正确
variable_name = value 错误
variable_name =value 错误
variable_name= value 错误
7、提取变量值 使用美元符号$可以提取变量的值:
- echo $variable_name
- echo $name
- echo $PATH
8、读取用户输入 shell可能会要求用户输入信息,read命令用于从用户输入中读取一行,如果read命令有多个参数,则shell会将输入的这一行分解为多个单词(word),每个单词用于给一个变量赋值:
- echo "what is your name?"
- read name
- read name1 name2 name3
9、参数 可以在命令行中给脚本传递参数,在脚本中利用位置参数来获取参数的值:
- $scriptname arg1 arg2 arg3
- echo $1 $2 $3
- echo $*
- echo $#
$1、$2、$3表示具体的位置参数
$*表示所有的位置参数
$#表示位置参数的个数
10、命令替换 Linux命令的输出可以被赋值给一个变量,或者通过使用反引号引用命令,在字符串中使用该命令的输出。在Bash shell中还提供了一种新的语法:不使用反引号,而是将命令包含在由美元符号开始的一对圆括号中即可。
- variable_name=`command`
- variable_name=$(command)
- echo $variable_name
- echo "today is `date`"
- echo "today is $(date)"
- <pre name="code" class="plain">liuwei@jupiter:~$ echo "today is `date`"
- today is Thu Jul 28 20:47:46 CST 2011
- liuwei@jupiter:~$ echo "today is $(date)"
- today is Thu Jul 28 20:48:00 CST 2011
- liuwei@jupiter:~$ echo "today is $( date )"
- today is Thu Jul 28 20:48:18 CST 2011</pre>
注意$()中的空格,是允许的。
11、数组
12、运算符
13、算术运算
14、条件语句
15、循环语句
16、函数
文章转自:http://blog.csdn.net/xiruanliuwei/article/details/6641971
- Bash shell的构成
- Bash shell的构成
- 交互式的bash shell
- bash shell的编程
- bash shell的快捷键
- bash shell的配置
- 【BASH】bash shell的使用实例
- bash shell的执行过程
- Shell(Bash) - 随机数的生成
- shell bash的基本语法
- bash shell字符串的截取
- Bash shell下的常用命令
- bash shell字符串的截取
- 简单的Bash Shell命令
- bash shell 下的环境变量
- unix 的 bash shell 脚本
- Shell&Bash的使用
- Bash Shell 的管道命令
- 沙盒机制和文件(二)
- android数据存储读取4:Sqlite(CRUD)
- JS事件:target与currentTarget区别
- swift2.0_语法改动详细说明
- Qt Creator 快捷键
- Bash shell的构成
- oracle学习笔记---用户管理
- 重写isEqual方法和hash方法
- http 状态码
- 调整android模拟器窗口大小
- PHP设计模式——状态模式
- 平衡二叉树(AVL)
- 沙盒机制与文件(一)
- ListView中使用type需要注意的东西