zoukankan      html  css  js  c++  java
  • Linux05--Shell程序设计01

    1.Shell脚本介绍

    基本介绍:

       shell脚本是一个可执行的纯文本文件,由多个shell命令组成。  

       命令的执行是从上而下,从左而右的分析和执行

       命令,参数间的多个空白也会被忽略

       #是注释

        #!用于指定使用的shell名称  如 bash csh等

        shell脚本一般以.sh为后缀名。

       内部命令与外部命令

            内部命令:shell是通过执行自己代码中相应的部分来完成的。

            外部命令:一些二进制的可执行文件或者shell脚本

     2.   通过type命令可以查看命令的类型

    [dmtsai@study ~]$ type [-tpa] name 
    选项与参数:
        :不加任何选项与参数时,type 会显示出name 是外部指令还是bash 内建指令
    -t :当加入-t 参数时,type 会将name 以底下这些字眼显示出他的意义:
          file :表示为外部指令;
          alias :表示该指令为命令别名所设定的名称;
          builtin :表示该指令为bash 内建的指令功能;
    -p :如果后面接的name 为外部指令时,才会显示完整档名;
    -a :会由PATH 变数定义的路径中,将所有含name 的指令都列出来,包含alias
    
    范例一:查询一下ls这个指令是否为bash内建?
    [dmtsai@study ~]$ type ls 
    ls is aliased to `ls --color=auto' <==未加任何参数,列出ls的最主要使用情况 
    [dmtsai@study ~]$ type -t ls 
    alias                               < ==仅列出ls执行时的依据 
    [dmtsai@study ~]$ type -a ls 
    ls is aliased to `ls --color=auto' <==最先使用aliase 
    ls is /usr/bin/ls                   <= =还有找到外部指令在/bin/ls
    
    范例二:那么cd呢?
    [dmtsai@study ~]$ type cd 
    cd is a shell builtin               <==看到了吗?cd是shell内建指令
    

    3.变量    bash shell的变量功能

    ❖变量是bash shell中重要的概念和功能,类似于C/Java语言中的变量。
    ❖需要掌握的变量相关操作命令:

      1.变量的显示与设置:echo、unset

        输出变量值:echo  $PATH

        设置变量的语法是  : a=b

        取消变量的语法是: unset a

      2.环境变量的相关操作:env、export

         使用env命令查看环境变量

         ❖使用set命令查看所有变量:包括环境变量和自定义变量

     3. 环境变量和自定义变量的主要区别是作用域的不同。

    ❖环境变量在整个bash运行过程中均有效,而自定义变量只在当前进程中有效。子进程会继承父进程的环境变量,不会继承自定义变量。
    ❖使用export命令可将自定义变量转化为环境变量。

      3.变量的输入:read

    从键盘读取变量值

    ❖使用read命令从键盘读取变量值,和用户交互,在shell script经常使用。
    ❖read语法为:
    [dmtsai@study ~]$ read [-pt] variable 
    选项与参数:
    -p :后面可以接提示字元!
    -t :后面可以接等待的『秒数!』这个比较有趣~不会一直等待使用者啦!
    
    范例一:让使用者由键盘输入一内容,将该内容变成名为atest的变数 
    [dmtsai@study ~]$ read atest 
    This is a test         <==此时游标会等待你输入!请输入左侧文字看看 
    [dmtsai@study ~]$ echo ${atest} 
    This is a test           <==你刚刚输入的资料已经变成一个变数内容!
    
    范例二:提示使用者30秒内输入自己的大名,将该输入字串作为名为named的变数内容 
    [dmtsai@study ~]$ read -p "Please keyin your name: " -t 30 named 
    Please keyin your name: VBird Tsai    <==注意看,会有提示字元喔!
    [dmtsai@study ~]$ echo ${named} 
    VBird Tsai         <==输入的资料又变成一个变数的内容了!
    

      

      4.数组与声明:declare/typeset、

    [dmtsai@study ~]$ declare [-aixr] variable 
    选项与参数:
    -a :将后面名为variable 的变数定义成为数组(array) 类型
    -i :将后面名为variable 的变数定义成为整数数字(integer) 类型
    -x :用法与export 一样,就是将后面的variable变成环境变数;
    -r :将变数设定成为readonly 类型,该变数不可被更改内容,也不能unset
    
    范例一:让变数sum进行100+300+50的加总结果 
    [dmtsai@study ~]$ sum=100+300+50 
    [dmtsai@study ~]$ echo ${sum} 
    100+300+50   <==咦!怎么没有帮我计算加总?因为这是文字型态的变数属性啊!
    [dmtsai@study ~]$ declare -i sum=100+300+50 
    [dmtsai@study ~]$ echo ${sum} 
    450          
    

      

       

  • 相关阅读:
    [Matlab.Matrix] 作为判断条件
    [Matlab.GUI] 学习小结
    [Modelsim] 初识
    [Matlab] isnan
    [Matlab] round
    [VS2012] 无法查找或打开 PDB 文件
    [Matlab.GUI]初识
    表格特效代码全集中
    JAVASCRIPT基础
    第4天:调用样式表
  • 原文地址:https://www.cnblogs.com/zqlmmd/p/5468433.html
Copyright © 2011-2022 走看看