zoukankan      html  css  js  c++  java
  • Shell的变量功能

    20.11.25

    影响显示结果的语系变量 (locale)

    locale -a:显示Linux 支持了多少语系

    locale :当前语系的配置

    [root@www ~]# locale  <==后面不加任何选项与参数即可!
    LANG=en_US                   <==主语言的环境
    LC_CTYPE="en_US"             <==字符(文字)辨识的编码
    LC_NUMERIC="en_US"           <==数字系统的显示信息
    LC_TIME="en_US"              <==时间系统的显示数据
    LC_COLLATE="en_US"           <==字符串的比较与排序等
    LC_MONETARY="en_US"          <==币值格式的显示等
    LC_MESSAGES="en_US"          <==信息显示的内容,如菜单、错误信息等
    LC_ALL=                      <==整体语系的环境
    

    变量键盘读取、数组与宣告: read, array, declare

    read [-pt] variable:命令用于从标准输入读取数值

    选项与参数:
    -p  :后面可以接提示字符!
    -t  :后面可以接等待的『秒数!』这个比较有趣~不会一直等待使用者啦!
    

    declare / typeset:declare 或 typeset 是一样的功能,宣告变量的类型

    选项与参数:
    -a  :将后面名为 variable 的变量定义成为数组 (array) 类型
    -i  :将后面名为 variable 的变量定义成为整数数字 (integer) 类型
    -x  :用法与 export 一样,就是将后面的 variable 变成环境变量;
    -r  :将变量配置成为 readonly 类型,该变量不可被更改内容,也不能 unset
    

    var[index]=content:数组 (array) 变量类型

    范例:
    [root@www ~]# var[1]="small min"
    [root@www ~]# var[2]="big min"
    [root@www ~]# var[3]="nice min"
    [root@www ~]# echo "${var[1]}, ${var[2]}, ${var[3]}"
    small min, big min, nice min
    

    与文件系统及程序的限制关系: ulimit

    ulimit [-SHacdfltu] [配额]:限制用户的某些系统资源

    选项与参数:
    -H  :hard limit ,严格的配置,必定不能超过这个配置的数值;
    -S  :soft limit ,警告的配置,可以超过这个配置值,但是若超过则有警告信息。
          在配置上,通常 soft 会比 hard 小,举例来说,soft 可配置为 80 而 hard 
          配置为 100,那么你可以使用到 90 (因为没有超过 100),但介于 80~100 之间时,
          系统会有警告信息通知你!
    -a  :后面不接任何选项与参数,可列出所有的限制额度;
    -c  :当某些程序发生错误时,系统可能会将该程序在内存中的信息写成文件(除错用),
          这种文件就被称为核心文件(core file)。此为限制每个核心文件的最大容量。
    -f  :此 shell 可以创建的最大文件容量(一般可能配置为 2GB)单位为 Kbytes
    -d  :程序可使用的最大断裂内存(segment)容量;
    -l  :可用于锁定 (lock) 的内存量
    -t  :可使用的最大 CPU 时间 (单位为秒)
    -u  :单一用户可以使用的最大程序(process)数量。
    
    范例一:列出你目前身份(假设为root)的所有限制数据数值
    [root@www ~]# ulimit -a
    core file size          (blocks, -c) 0          <==只要是 0 就代表没限制
    data seg size           (kbytes, -d) unlimited
    scheduling priority             (-e) 0
    file size               (blocks, -f) unlimited  <==可创建的单一文件的大小
    pending signals                 (-i) 11774
    max locked memory       (kbytes, -l) 32
    max memory size         (kbytes, -m) unlimited
    open files                      (-n) 1024       <==同时可开启的文件数量
    pipe size            (512 bytes, -p) 8
    POSIX message queues     (bytes, -q) 819200
    real-time priority              (-r) 0
    stack size              (kbytes, -s) 10240
    cpu time               (seconds, -t) unlimited
    max user processes              (-u) 11774
    virtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited
    

    变量内容的删除、取代与替换

    变量配置方式 说明
    ${变量#关键词} ${变量##关键词} 若变量内容从头开始的数据符合『关键词』,则将符合的最短数据删除 若变量内容从头开始的数据符合『关键词』,则将符合的最长数据删除
    ${变量%关键词} ${变量%%关键词} 若变量内容从尾向前的数据符合『关键词』,则将符合的最短数据删除 若变量内容从尾向前的数据符合『关键词』,则将符合的最长数据删除
    ${变量/旧字符串/新字符串} ${变量//旧字符串/新字符串} 若变量内容符合『旧字符串』则『第一个旧字符串会被新字符串取代』 若变量内容符合『旧字符串』则『全部的旧字符串会被新字符串取代』
    先让小写的 path 自定义变量配置的与 PATH 内容相同
    [root@www ~]# path=${PATH}
    [root@www ~]# echo $path
    /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:
    /usr/sbin:/usr/bin:/root/bin  
    
    假设我不喜欢 kerberos,所以要将前两个目录删除掉,如何显示?
    [root@www ~]# echo ${path#/*kerberos/bin:}
    /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    
  • 相关阅读:
    Problem C: 类的初体验(V)
    接口与继承
    类和对象
    java函数方法
    数组
    string类的一些函数方法
    java语法基础
    大道至简——做个懒人
    java编程 求和
    编程的精义
  • 原文地址:https://www.cnblogs.com/ananing/p/14039155.html
Copyright © 2011-2022 走看看