shell 常用语法基础
来源:互联网 发布:广电网络自助缴费 编辑:程序博客网 时间:2024/06/05 09:32
表 31.1. 通配符
$ ls /dev/ttyS*$ ls ch0?.doc$ ls ch0[0-2].doc$ ls ch[012][0-9].doc
注意,Globbing所匹配的文件名是由Shell展开的,也就是说在参数还没传给程序之前已经展开了,比如上述ls ch0[012].doc
命令,如果当前目录下有ch00.doc
和ch02.doc
,则传给ls
命令的参数实际上是这两个文件名,而不是一个匹配字符串。
3.3. 命令代换:`或 $() 请点评
由反引号括起来的也是一条命令,Shell先执行该命令,然后将输出结果立刻代换到当前命令行中。例如定义一个变量存放date
命令的输出:
$ DATE=`date`$ echo $DATE
命令代换也可以用$()
表示:
$ DATE=$(date)
3.4. 算术代换:$(()) 请点评
用于算术计算,$(())
中的Shell变量取值将转换成整数,例如:
$ VAR=45$ echo $(($VAR+3))
$(())
中只能用+-*/和()运算符,并且只能做整数运算。
3.6. 单引号 请点评
和C语言不一样,Shell脚本中的单引号和双引号一样都是字符串的界定符(双引号下一节介绍),而不是字符的界定符。单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外,但是字符串中不能出现单引号。如果引号没有配对就输入回车,Shell会给出续行提示符,要求用户把引号配上对。例如:
$ echo '$SHELL'$SHELL$ echo 'ABC\(回车)> DE'(再按一次回车结束命令)ABC\DE
3.7. 双引号 请点评
双引号用于保持引号内所有字符的字面值(回车也不例外),但以下情况除外:
$加变量名可以取变量的值
反引号仍表示命令替换
\$表示$的字面值
\`表示`的字面值
\"表示"的字面值
\\表示\的字面值
除以上情况之外,在其它字符前面的\无特殊含义,只表示字面值
$ echo "$SHELL"/bin/bash$ echo "`date`"Sun Apr 20 11:22:06 CEST 2003$ echo "I'd say: \"Go for it\""I'd say: "Go for it"$ echo "\"(回车)>"(再按一次回车结束命令)"$ echo "\\"\
Shell提供了一些用于调试脚本的选项,如下所示:
- -n
读一遍脚本中的命令但不执行,用于检查脚本中的语法错误
- -v
一边执行脚本,一边将执行过的脚本命令打印到标准错误输出
- -x
提供跟踪执行信息,将执行的每一条命令和结果依次打印出来
使用这些选项有三种方法,一是在命令行提供参数
$ sh -x ./script.sh
二是在脚本开头提供参数
#! /bin/sh -x
第三种方法是在脚本中用set命令启用或禁用参数
#! /bin/shif [ -z "$1" ]; then set -x echo "ERROR: Insufficient Args." exit 1 set +xfi
set -x
和set +x
分别表示启用和禁用-x
参数,这样可以只对脚本中的某一段进行跟踪调试。
- shell 常用语法基础
- shell常用到的基础语法
- shell常用语法汇总
- 常用shell语法
- SHELL基础语法
- shell脚本基础语法
- linux shell基础语法
- SHELL 基础语法
- shell基础语法
- shell 基础语法
- shell基础语法
- shell 语法基础
- linux shell基础语法
- Shell常用语法归集
- Shell的基础的语法
- shell脚本语法基础汇总
- Linux Shell编程语法基础
- shell简单的语法基础
- 浅谈项目管理
- Android json格式时间格式化
- 黑马程序员--02.Java语言基础--01.【关键字】【标示符】【常量】【变量】【运算符】
- QSqlDatabase类实现了数据库连接的操作
- 小鸟 组合模式 构造函数 传入一个新的接口实现对象 添加新功能
- shell 常用语法基础
- CentOS 分区
- 由浅入深探究mysql索引结构原理、性能分析与优化
- DELPHI Format参数
- MyEclipse10下实现对svn的支持
- 字符串统计 hdu 2017
- DIV强制不换行
- MyEclipse常用快捷键
- 泛型接口的实现方式之一