shell基础

http://c.biancheng.net/cpp/view/6998.html

一.基础

  1. 打印:echo 
  2. 执行一个文件test.sh
    1. 方法1:./test.sh 注意必须加点,不然会去系统PATH中找test.sh脚本,一般找不到的。/bin/sh这种目录
    2. 方法2: /bin/sh test.sh,文件中不用写#!/bin/sh
  3. 简单事例:从stdin读入一个值,赋给变量PERSON,并打印在屏幕上
    #!/bin/sh
    echo "what is your name"
    read PERSON
    echo "hell $PERSON"

    4.

  4. 变量:

    1. shell中变量不需要声明类型,都是字符串类型;解释性语言基本都不需要,如python

    2. 变量的定义:数字字母下划线;数字不开头;跟系统变量命名不冲突;

      1. name=liuxuyan

      2. name='liuxuyan nihao'

      3. name="liuxuyan nihao "

      4. 注:单引号双引号作用不同;有空格或者tab必须有引号;等号与变量之间不能有空格

    3. 打印 echo $name或者echo ${name}

             4. 单双引区别:单引号本来是啥就是啥;双引号会识别反斜线,$符号

name=ceshi
echo 'nihao $name'
    nihao $name
echo "nihao $name"
    nihao ceshi

               5. 命令结果赋值:name=$(cat ceshi.sh),命令结果赋给一个变量

               6.删除:unset 变量名;只读变量:readonly 变量名

 5. 特殊字符

echo "文件名 $0"
echo "第一个参数 $1"
echo "参数总个数 $#"
echo "所有参数 $*"
echo "进程id $$"
./test$.sh
第一个参数 a
参数个数 4
所有参数 a b c d
进程id 61849

6. 运算符

  1. 逻辑运算:必须用``引起来;运算符必须跟变量之间有空格 $a + $b;乘号必须有反斜线
    a=10
    b=20
    c=`expr $a + $b`
    echo "a + b : $c"
    c=`expr $a \* $b`
    echo "a * b : $c"
    c=`expr $a / $b `
    echo "a / b : $c"
    c=`expr $a % $b`
    echo "a % b : c"
    if [ $a == $b ]
    then
            echo "a is equal b"
    fi
    a + b : 30
    a * b : 200
    a / b : 0
    a % b : c

     

  2. 关系运算符:只支持数字
    运算符说明举例
    -eq检测两个数是否相等,相等返回 true。[ $a -eq $b ] 返回 true。
    -ne检测两个数是否相等,不相等返回 true。[ $a -ne $b ] 返回 true。
    -gt检测左边的数是否大于右边的,如果是,则返回 true。[ $a -gt $b ] 返回 false。
    -lt检测左边的数是否小于右边的,如果是,则返回 true。[ $a -lt $b ] 返回 true。
    -ge检测左边的数是否大等于右边的,如果是,则返回 true。[ $a -ge $b ] 返回 false。
    -le检测左边的数是否小于等于右边的,如果是,则返回 true。[ $a -le $b ] 返回 true。
  3. 布尔运算符
    运算符说明举例
    !非运算,表达式为 true 则返回 false,否则返回 true。[ ! false ] 返回 true。
    -o或运算,有一个表达式为 true 则返回 true。[ $a -lt 20 -o $b -gt 100 ] 返回 true。
    -a与运算,两个表达式都为 true 才返回 true。[ $a -lt 20 -a $b -gt 100 ] 返回 false。
  4.  

     

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值