Bourne Shell编程基础

这两天把Shell编程一些基础的东西整理了一下,主要是一些不太清楚的概念点,贴到这里。


/*========================================================================

#   FileName: BourneShell.txt
#   Function: Base knowledge of BS 
#     Author: wayne
#    Company: UESTC
# LastChange: 2012-05-12 17:36:35
========================================================================*/


********************************
变量修饰符
********************************
${variable:-word} ---------if var is null, echo word; else echo var
${variable:=word} ---------if var is null, var= word, echo var
${variable:+word} ---------if var is null, echo null; else echo word
${variable:?word} ---------if var is null, echo word and exit;else echo var


********************************
位置参数
********************************
可以编写一个shell脚本,当从命令行或者从其他shell脚本中调用它的时候,这个脚本接收若干参数。这些选项是通过Linux作为位置参数(positional parameter)提供给shell程序的。
在shell脚本中应有变量,接收实参,这类变量的名称很特别,分别是1,2,3,…,这类变量称为位置变量。位置参数1存放在位置变量1中,位置参数2存放位置变量2中,……,在程序中可以使用$1,$2,……来访问。
通过set来设置变量,最多九个。
内部变量
部分内部变量及其作用
      变量  作用
 $#    传给shell程序的位置参数的数目
 $?    最后命令的完成码或在shell程序内所执行的shell程序
 $0    shell程序的名称
 $*    调用shell程序示所传送的全部变元的单字符串
 
********************************
引用
********************************
保护特殊元字符不被解释
\ : \\ \'
'': all character
"": 允许变量替换和命令替换




********************************
命令替换
********************************
用反引号来执行替换命令
name = `uname`
echo $name


********************************
函数
********************************
函数通常定义在用户的初始化文件.profile
中,一旦定义,函数就成了shell内存映像的一部分,可直接调用。


********************************
标准I/O和重定向
********************************
o : stdin
1 : stdout
2 : stderr


< : redirect stdin
> : redirect stdout
>>: add redirect stdout
2>: redirect stderr
1>&2: redirect stdout to where stderr redirected to
2>&1


********************************
here文档于重定向输入
********************************
here文档为需要输入数据的程序(如mail,sort,cat)接收内置文本,
直到收到用户自定义的终止符。


command << terminator
command <<- terminator  ------------运行终止符前有一个或多个制表符


********************************
common programming
********************************
read var1 var2 : read from stdin to variable
expr 1 \* 9, 1 + 3  ----------echo $((1*9))
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值