zoukankan      html  css  js  c++  java
  • Shell

    Shell 变量

    1、定义变量时,变量名不加美元($)符号

    your_name="runoob.com"
    

    2、在变量名前面加美元符号使用已定义过的变量

    echo ${your_name}
    

    3、unset删除变量

    4、单引号与双引号的区别:

    • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
    • 单引号字符串中不能出现单引号
    • 双引号字符串中可以有变量
    • 双引号里可以出现转义字符

    5、用于处理参数的特殊字符

    • $# 传递到脚本的参数个数
    • $* $@ 显示所有向脚本传递的参数
    • $$ 脚本运行的当前进程ID
    • $! 后台运行的最后一个进程的ID
    • $- 显示Shell使用的当前选项
    • $? 显示最后命令的退出状态

    6、Shell数组

    (1)数组名=(值1 值2 ... 值n)

    (2)获取数组元素的个数

    ${#array_name[*]}
    #或者
    ${#array_name[@]}
    

    (3)获取数组单个元素的长度

    ${#array_name[n]}
    

    7、 字符串截取

    #假设变量var=http://www.aaa.com/123.htm
    
    ##号截取,删除左边字符,保留右边字符
    echo ${var#*//}
    #删除:http://
    
    ###号截取,删除左边字符,保留右边字符
    echo ${var##*/}
    #删除http://www.aaa.com/
    
    #%号截取,删除右边字符,保留左边字符
    echo ${var%/*}
    #删除/123.htm
    
    #%%号截取,删除右边字符,保留左边字符
    echo ${var%%/*}
    #删除//www.aaa.com/123.htm
    
    #输出左边第几个字符开始,及字符的个数
    echo ${var:0:5}
    #0表示左边第一个字符开始,5表示字符的总个数
    #结果是:http:
    
    #从左边第几个字符开始,一直到结束
    echo ${var:7}
    #其中的 7 表示左边第8个字符开始,一直到结束
    #结果是 :www.aaa.com/123.htm
    
    #从右边第几个字符开始,及字符的个数
    echo ${var:0-7:3}
    #其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数
    #结果是:123
    
    #从右边第几个字符开始,一直到结束
    echo ${var:0-7}
    #表示从右边第七个字符开始,一直到结束。
    #结果是:123.htm
    

    8、关系运算符

    • -eq 检测两个数是否相等
    • -ne 检测两个数是否不等
    • -gt 检测左边的数是否大于右边的
    • -lt 检测左边的数是否小于右边的
    • -ge 检测左边的数是否大于等于右边的
    • -le 检测左边的数是否小于等于右边的

    9、布尔运算符

    • ! 非运算
    • -o || 或运算
    • -a && 与运算

    10、字符串运算符

    • = 检测两个字符串是否相等
    • != 检测两个字符串是否不等
    • -z 检测字符串长度是否为0
    • -n 检测字符串长度是否不为0
    • str 检测字符串是否为空

    11、文件测试运算符

    • -b file 检测文件是否是块设备文件
    • -c file 检测文件是否是字符设备文件
    • -d file 检测文件是否是目录
    • -f file 检测文件是否是普通文件
    • -g file 检测文件是否设置了SGID位
    • -k file 检测文件是否设置了粘着位
    • -p file 检测文件是否有管道
    • -u file 检测文件是否设置了SUID位
    • -r file 检测文件是否可读
    • -w file 检测文件是否可写
    • -x file 检测文件是否可执行
    • -s file 检测文件是否为空
    • -e file 检测文件(包括目录)是否存在

    12、Shell test命令

    13、Shell流程控制

    (1)if else

    if condition1
    then
      #command1
    elif condition2
    then
      #command2
    else
      #commandN
    fi
    

    (2)for循环

    for var in item1 item2 ... itemN
    do
      #command
    done
    

    (3)while语句

    while condition
    do
      #command
    done
    

    (4)until循环

    until condition
    do
      #command
    done
    

    (5)case

    case 值 in
    模式1)
      #command1
      ;;
    模式2)
      #command2
      ;;
    esac
    
    

    14、Shell函数

    function name(parameter) {
      #statements
    }
    

    15、包含外部脚本

    . filename
    #或
    source filename
    
  • 相关阅读:
    执行游戏时出现0xc000007b错误的解决方法
    html中#include file的使用方法
    使用ServletFileUpload实现上传
    java环境变量配置
    微软之左旋转字符串
    Ubuntu下很给力的下载工具
    hibernate官方新手教程 (转载)
    mssql数据库游标批量改动符合条件的记录
    PageRank算法
    Myeclipse7.5 下载 安装 注冊 注冊码 100%成功
  • 原文地址:https://www.cnblogs.com/zj0511/p/7158173.html
Copyright © 2011-2022 走看看