`

shell之入门篇

阅读更多
Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Ken Thompson的sh是第一种Unix Shell,Windows Explorer是一个典型的图形界面Shell。
Shell 脚本
Shell 脚本(shell script),是一种为shell编写的脚本程序。
业界所说的shell通常都是指shell脚本,但读者朋友要知道,shell和shell script是两个不同的概念。
由于习惯的原因,简洁起见,本文出现的"shell编程"都是指shell脚本编程,不是指开发shell自身。
Shell 环境
Shell 编程跟java、php编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。
Linux的Shell种类众多,常见的有:
Bourne Shell(/usr/bin/sh或/bin/sh)
Bourne Again Shell(/bin/bash)
C Shell(/usr/bin/csh)
K Shell(/usr/bin/ksh)
Shell for Root(/sbin/sh)
……
较常用 Bourne Again Shell,由于易用和免费,Bash在日常工作中被广泛使用。同时,Bash也是大多数Linux系统默认的Shell。


语法:
  
  shell中的注释
  
    # 类似于java中的//注释,shell中没有多行注释

   echo "学习"   -->会打印出"学习"  

   变量申明  name="张珊" 
   注:变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量        名的命名须遵循如下规则:
      首个字符必须为字母(a-z,A-Z)。
      中间不能有空格,可以使用下划线(_)。
      不能使用标点符号。
      不能使用bash里的关键字(可用help命令查看保留关键字)。
  
    使用变量:例如输出name   echo $(name)或 echo $name
   
    已定义的变量,可以被重新定义例如:name="张珊" name="李四" 那么echo $name将会输出"李四"
    
     只读变量,例如设置name为只读变量
            name="张珊"
            readonly name
            name="李四"
      那么再去修改name为李四时运行会提示: name: readonly variable
     
     删除变量
       把刚才的name变量删除:unset name 然后再echo name 则不会输出任何信息

      变量类型
        运行shell时,会同时存在三种变量:
             1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他         shell启动的程序不能访问局部变量。
             2) 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
             3) shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
      
      Shell 字符串
         在shell中可用''或者""或者不用单/双引号声明字符串
            最好用双引号:
              双引号里可以有变量
              双引号里可以出现转义字符

      拼接字符串
           name="张珊"
           allname="你认识$name吗"
           echo $allname
           输出为:你认识张珊吗?

       获取字符串长度
           name="张珊"
           echo ${#name}
           输出:6
        字符串截取
           name="ILOVEYOU"
           res=${name:1:4} //截取name的第 2 个字符开始截取 4 个字符赋给变量res
           echo $res
           输出:LOVE
        查找某个字符串的位置类似于java中的indexOf()
           name="ILOVEYOU"
           echo `expr index "$name" V`
           输出:4  注:脚本中 "`" 是反引号,而不是单引号 "'",不要看错了,有点儿坑!
        Shell中的数组
           bash支持一维数组(不支持多维数组),并且没有限定数组的大小。
类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0
           在Shell中,用括号来表示数组数组元素用"空格"符号分割开。定义数组的一般  形式为:   names=(zhangshan lishi wangwu zhaoyun)
        单独定义数组的各个分量

           例如:names[0]=chian
                names[1]=usa
                  .
                  .
                names[n]=xxx
             注:可以不使用连续的下标,而且下标的范围没有限制
         读取数组
                读取数组元素值的一般格式是:
                ${数组名[下标]}
                例:${names[0]}
                names=(zhangshan lishi)
                echo ${names[1]}  #输出为:lishi

                用@符号可以获取数组中的所有元素
                echo ${names[@]}   #输出为:zhangshan lishi
         获取数组的长度
            取得数组元素的个数
             length=${#array_name[@]}
            或者
           
 length=${#array_name[*]}

            取得数组单个元素的长度
              lengthn=${#array_name[n]}
             例子:
                 names=(zhangshan lishi)
               length=${#names[@]}  #此处或者写为
length=${#names[*]}

                 echo $length     #输出2
             









分享到:
评论

相关推荐

    Linux系统下的shell编程入门篇

    Linux系统下的shell编程入门篇,真的很不错,很好

    学习shell的入门资料(shell十三问+shell基础十二篇)doc版

    此资源包括两个word文档,《shell十三问》和《shell基础十二篇》,记录的是网络上的shell学习的帖子,浅显易懂,诙谐幽默,非常适合shell初学者,是shell入门学习最佳的材料。

    shell基础十二篇和shell十三问

    网友总结的非常经典的shell编程入门资料,简单明了,例子丰富!

    Unix入门资料和Unix自学篇十讲

    UNIX 自学篇:第一讲:存取权限与文件 UNIX 自学篇:第二讲shell环境 UNIX 自学篇:第三讲vi editor UNIX 自学篇:第四讲:系统管理 UNIX 自学篇:第五讲:电子邮件 UNIX 自学篇:第六讲:...UNIX系统操作入门篇(五)

    shell基础知识12篇

    从网络上整理的shell基础,入门shell非常有帮助

    解读Linux内核——入门篇

    Linux 内核 kernel 入门 shell编程

    一篇教会你写90%的shell脚本(入门小结)

    shell脚本? 在说什么是shell脚本之前,先说说什么是shell。 shell是外壳的意思,就是操作系统的外壳。我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就包括ls、cd、pwd等等。总结来说,Shell...

    COM编程入门篇.doc

    本文由浅入深描述COM的内在运行机制,教你如何使用第三方提供的COM对象(以Windows 外壳组件Shell为例)。读完本文后,你就能掌握如何使用Windows操作系统中内建的组件和第三方提供的COM对象。 本文假设你精通C++...

    linux shell指令基础

    linux shell 指令基础,适合初学者,入门教程,基础篇

    Hadoop大数据学习–Linux,Shell脚本入门–精华篇

    Hadoop大数据学习–Linux脚本入门小结–精华篇 为什么要学脚本 很多网友私信我,看我发过一些脚本,但是不会写,可是作为大数据学习者,我们深刻的意识到,脚本这个东西,已经不是运维人员的专属,我们大数据开发,...

    Linux Shell全精通+Linux内核编程篇+Linux裸机开发篇+Linux驱动开发篇 Linux全栈开发

    课程内容包括了第一期的Linux零基础入门视频教程,主要包括了Linux基础和Shell脚本编程。第二部分上Linux内核编程全解部分,第三部分上Linux的裸机开发实战课程,以及最终的Linux驱动开发篇教程。这几部部分课程可以...

    什么是Shell?Shell脚本基础知识详细介绍

    主要介绍了什么是Shell?Shell脚本基础知识介绍,本文是一篇Shell脚本入门文章,在本文你可学到什么是Shell、有多少种Shell、一个Shell脚本代码实例,需要的朋友可以参考下

    BASH入门基础篇.pdf

    BASH基础的语法,和用法。讲解的简单易懂。可以快速入门。

    CMake从入门到实战系列(十二)-CMake中如何执行shell命令(1)

    在CMake中执行shell命令主要涉及三个指令:execute_process、add_custom_command、add_custom_target。我们将分别对每个指令做一下总结,并用示例代码加深理解。 本章对指令execute_process进行一下总结,下一篇文章...

    LINUX从入门到精通

    陈祥琳编著的《Linux从入门到精通》由浅入深、循序渐进地介绍了Linux操作系统的基础入门知识,全书主要包括两个部分,即Linux系统篇和Linux服务器篇。主要内容包括Linux操作系统的基础知识,基本命令介绍,用户以及...

    Windows 外壳扩展编程入门实例(Delphi篇)

    Complete Idiot’s Guide to Writing Shell Extensions 我也曾想过所谓眼前有景道不 得崔颢题诗在上头既然已经有了这么好的文章我还来饶舌算什么不过转念再想文章 虽好毕竟是为Visual C++的用户看的对Delphi 的使用...

    Linux运维从入门到高级全套案例v3.rar

    Linux入门篇 操作系统简介 1.2 Linux发展趋势 3 Linux系统安装 4 Linux学习技巧 2. Linux系统篇…… 2.1 Linux系统管理… 2.1.1 Linux目录初识 2.1.2 Linux常用命令 2.1.3 Linux用户权限 2.1.4Limx网络配置 3. Linux...

    BASH脚本编程入门

    BASH脚本编程入门 很好的入门书籍 30分钟搞定BASH脚本编程 ...这篇指南将通过一些例子来帮助大家学习功能强大的shell脚本编程. 在这一节中我将学习一些简单的脚本,它将有利于你深入学习一些知识。

    Windows外壳扩展编程入门实例

    关于Windows外壳扩展方面的文章私心以为最好的应当算是Michael Dunn的The Complete Idiot抯 Guide to Writing Shell Extensions我也曾想过所谓...毕竟还是有所不同因此就有了这篇文章算是将我的一些心得体会和大家分享

Global site tag (gtag.js) - Google Analytics