Linux下的shell编程

前提:shell环境pdksh和bash; Ubuntu下默认的shell环境是bash

 

语法篇:

<一>变量

1.变量分为三种类型:环境变量、内部变量和用户变量;其中环境变量和内部变量不需要用户定义,可以直接使用。

环境变量:由系统定义,用户不需要定义但可以改变变量的值。

内部变量:由系统提供的一种特殊类型的变量。这种变量在程序中用来做出判定。在shell程序内这些变量是不能够修改的。

部分内部变量如下:

$#  传递给shell程序的位置参数的数目;

$?   最后命令完成码或shell程序内所执行的shell程序;

$0   shell程序的名称;

$*    调用shell程序是所传送的变元的单字符串。 

用户变量:由用户定义的,能够被用户所修改。

注意:1. 变量是无类型的(若类型的);

         2. 不需要声明
         3. 赋值 例子 a=10; “=”两边不可以有空格

字符串赋值有三种,分别是:“=”后直接跟字符串;字符串加单引号;字符串加双引号。但是有所区别

1. 当字符串中有空格出现时,不能采用第一种,必须用第二种或第三种;

2. 加‘’可以阻止shell解析变量

3. 加“”可以解析字符串中的所有变量

例如:x=abc def会产生错误,正确形式 x='abc def' 或 x="abc def"

 

双引号

var="test string"

newvar="Value of var is $var"

echo $newvar

输出结果为: Value of var is test string

 

单引号

var="test string"

newvar='Value of var is $var'

echo $newvar

输出结果为:Value of var is $var

 

反斜杠

在某个字符前利用反斜杠可以阻止shell把后面的字符解释为特殊字符。

test=3

var=$test

echo $var

输出结果是:3

test=3

var=/$test

echo $var

输出结果是:test

<二>表达式的比较

在不同的shell中执行逻辑比较的操作符是不同的,在pdksh和bash下,有一个叫做 test 的命令可以用来完成表达式的比较。test命令支持如下四种类型的比较

1. 字符串比较

     =            比较两个字符是否相等

     !=           比较两个字符串是否不相等

     -n           比较字符串长度是否大于零

     -z           比较字符串长队是否等于零

2. 数字比较

    -eq          比较两个数字是否相等

    -ge          比较第一个数是否大于等于第二个数

    -le           比较第一个数是否小于等于第二个数

    -ne          比较两个数是否不等

    -gt           比较第一个数是否大于第二个数

    -lt            比较第一个数是否小于第二个数

3. 文件操作比较

    -d           判断文件是否是目录

    -f            判断文件是否是普通文件

    -r           判断是否对文件设置了读权限

    -s           判断文件名长队是否大于0

    -w          判断文件是否有写权限

    -x           判断文件是否有执行权限

4.  逻辑操作符比较

     !            逻辑非

     -o          逻辑或

     -a          逻辑与

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值