zoukankan      html  css  js  c++  java
  • Linux shell 编写(2)

    shell脚本中变量的定义和使用:

      1.shell中变量名可以由字母,数字,下划线组成,但数字不能作为变量名的第一个字符。

      2.通过赋值符号"="来定义一个变量

        如:myname='galley'  #字符串类型,不解析任何字符

          courses="abcdef"  #双引号内部会解析$和反斜杠特殊字符

          sum=100;price=1.25

          now_date=`date`  #反引号执行系统命令

              shell中的变量只有字符串类型,所以当你不用引号引起来的时候要保证变量的值不包含特殊符号,如空格,美元,&

      3.变量的引用,适用美元符号$加变量名,来引用一个变量的值

        如: 定义变量:programe_name="http"

          引用变量:echo $programe_name

          或者    echo{$programe_name}

      4.变量名外面的花括号

        是可选的,加花括号是为了帮助解释器识别变量的边界,比如下面情况:

          #!/bin/bash

          for skill in pop java linux db2

            do

              echo "i  am good at  ${skill}Script" #帮助shell解释器识别边界值

            done

    shell环境变量,局部变量以及预定义变量:

      环境变量的定义:

        一般指操作系统中运行环境的一些参数,如PATH,PWD,USER,当前使用$shell名称等

      常见的环境变量:

        PATH:系统路径

        HOME:当前用户目录

        HISTSIZE:保存历史命令记录的条数

        LOGNAME:当前用户登录名

        HOSTNAME:主机名称,若应用程序要用到主机名的话,一般是从这个环境变量中取得的

        SHELL:当前用户用的是哪种shell

        LANG/LANGUGE:和语言相关的环境变量,使用多种语言的用户可以修改此环境变量

        MAIL:当前用户邮件存放目录

      查看环境变量:

        env:显示所有环境变量

        echo $PATH:显示某一个环境变量的值

      局部变量包括:

        1.在shell脚本中由用户自定义的变量

           shell脚本中定义的变量作用域是从被定义的地方开始,到shell结束为止,起作用域为本脚本,离开脚本,变量无效

        2.在用户登录的shell中定义的变量,重新登录后该变量消失

      预定义变量:

        预定义变量和环境变量类似,也是shell一开始就定义了的变量,所不同的是,用户只能根据shell的定义来使用这些变量,而不能重新定义它,所有预定义变量都是由$符号和另一个符号组成的,常用的shell预定义变量有:

        ·$# 位置参数变量

        ·$* 所有位置参数内容

        ·$?命令执行后的返回状态。   #0 表示成功,非0表示失败。

        ·$$ 当前进程的进程号

        ·$!后台运行的最后一个进程号。   很少用 了解即可

        ·$0 当前执行的进程名

    变量的输入和输出:

      1.echo 命令发送数据到标准输出设备,数据采用的是字符串的方式,echo命令可以输出一个变量。

        

      2.echo 两个重要的参数

        -e    # 识别输出内容里的转义序列

        

        -n   #忽略结尾的换行

        

      3.printf和echo的功能类似,printf也可以输出变量,printf还可以按照格式输出变量

        注意的是:

          1)printf的默认是没有换行的,换行需要自己添加“ ”

            

          2)printf支持格式化输出

            

       read输入:read命令读取标准输入设备的下一行,标准输入中的第一行到换行符前的所有字符都会被读取,并赋值给对应的变量。

            可以结合echo一起实现读取并输出的功能

            

            1.1.1.1为键盘输入。

  • 相关阅读:
    LeetCode 461. Hamming Distance
    LeetCode 442. Find All Duplicates in an Array
    LeetCode 448. Find All Numbers Disappeared in an Array
    LeetCode Find the Difference
    LeetCode 415. Add Strings
    LeetCode 445. Add Two Numbers II
    LeetCode 438. Find All Anagrams in a String
    LeetCode 463. Island Perimeter
    LeetCode 362. Design Hit Counter
    LeetCode 359. Logger Rate Limiter
  • 原文地址:https://www.cnblogs.com/fishperson/p/10447588.html
Copyright © 2011-2022 走看看