ubuntu之shell编程学习笔记1——概述

1、查看shell版本命令

    bash  --version

2、查看别名

   alias

3、查看命令的类型

   type + 命令

4、删除别名

   unalias, 暂时不想使用别名,使用\,例子:\ls

5、如何执行一个shell脚本

6、shell变量

    本地变量,只在创建它的shell中有效,

    赋值 ------ 变量名=值 (等号两边不可以有空格,如果赋值包括空格,空格必须用引号引起来)

   shell变量对大小写敏感的,必须以字母和下划线开头。

   清除变量------unset +变量名(例子  unset name)

   使用set命令可以查看当前本地定义的所有shell变量

7、shell变量的扩展应用

   ${name:-word}----------------  当变量name已被设置且非空,这显示name的值,否则显示word

   ${name:+word} ----------------当变量name已被设置且非空,这显示word的值,否则什么都不显示,代入空的值

   ${name:=word}----------------  当变量name已被设置且非空,这显示name的值,否则显示word的值,且变量name始终赋值为word

   ${name:?word}}----------------  当变量name已被设置且非空,这显示name的值,否则显示word的值,并且从shell退出

   ${name:offset}  或${name:offset:length}  ---------获取变量name值中从offset开始的子串,或者获取从offset开始长度为length的子串。

  例子:name="what is your name?"   echo ${name:3}  ------输出:t is your name?

   ${var/parten/replacement}----------用replacement来替换变量var中第一个与parten匹配的串,局部匹配

  例子:echo ${name/is/IS} --------what IS your name?

   ${var//parten/replacement}----------用replacement来替换变量var中所有与parten匹配的串,全局匹配

  例子:echo ${name/a/A} --------whAt IS your nAme?

8、变量设置成为只读的

       变量赋值后,就不在赋值,只能读,例子:name="welcome shell  word!"      readonly name  ,注意只读的变量不能用unset命令清除。

9、环境变量

      1、环境变量全局可以调用。2、环境变量可以自己定义,但必须大写,用export导出,但用户注销后这些值就丢失,

       例子:NAME=shell  export  NAME , 自定义一个NAME环境变量。显示环境变量:$NAME

      如果想要保证NAME在用户注销后不被清除,可以在系统初始化文件中编写。

10、变量的长度

     ${#name}  可以得出name变量的长度,注意:如果name是个数组,那么${#name}是数组第一个元素的长度

     例子:name=(a bb ccc ddd)    echo ${#name}    ----输出:1  

                 ${#name[*]}  --输出:4(即数组namde的元素个数),${name[2]}------输出:ccc

11、指定类型的变量

 格式:关键字declare 或者typeset +[-option]  +变量名

  -option     -i 整数,-r只读,-a数组,-x export  ,-f函数

例子:  declare -r var  等同于  readonly  var
               declare -i number

12、变量间接引用

    例子  admin=willson

              willson=myname

             echo ${admin}---------willson

             eval  admin=\$$admin              !--变量间接引用

              echo ${admin}-------myname

13、随机数

      $RANDOM

14、位置变量

      $0 ,$1,$2,$3......................................¥9        $0是脚本名称,$1是第一个参数,$2是第二个参数。。。。。。。。。。。。

15、特定变量参数

     $#---------传递到脚本的参数个数

     $*---------以一个单字符串显示所有向脚本传递的参数

     $!---------后台运行的最后一个进程的进程ID

     $$--------脚本运行的当前进程ID

    $- ---------显示脚本shell使用的当前选项,与set命令功能相同

    $@--------与$#相同,但是在使用中加引号,并在引号中返回每个参数

    $?---------显示最后命令退出的状态,0表示没有错误,其他值表示异常    例如:mkdir  adc    echo $?   ----输出:0

16、引用

   ""--双引号:可以引号除$,`,\外的任意字符或字符串

   ``    ---反引号 :引用命令    例如  name="你所在的目录`pwd`"    ----你所在的目录/root/shell"   

   ''--单引号  :变量原样输出

  \---反斜杠 :转义符         例如:echo  $$    ---输出当前进程的ID  ,echo  \$$----  $$

17、  echo  "$name"    name原样输出    例如  name="a b     c        d"    echo "$name"

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值