• shell语法


    基本语法列表

    #linux组成:内核+工具
    
    #linux启动:
        1. getty:提示登录名和密码,输入之后调用login
        2. login:login验证用户名和密码,然后调用shell
        3. shell:用户与系统的交互接口
    
    #文件的分类:普通文件、目录、特殊文件。
        1. 普通文件的:ls cat cp mv rm
        2. 目录:ls mkdir rmdir cp mv rm
    
    #文件的属性:权限、所有者、组
        1. 权限:chmod
        2. 所有者、组:chown chgrp
    
    #进程:前台,后台
        1. & fg bg nohup(终端断开同样执行)
        2. jobs ps top kill
        3. exec
        
    #变量:普通变量、数组变量
        1. $
        2. 数组变量赋值:ksh:set -A name value1 value2 value3,bash: name(value1 value2 value3)
        3. 数组的访问:${name[index]},${name[*]},${name[*]}
        4. readonly
        5. set unset
    #变量:局部变量、环境变量、Shell变量
        1. shell变量:PWD UID SHLVL REPLY RANDOM SECONDS IFS PATH HOME
        2. export
    
    #替换:文件名替换、变量替换
        1. 文件名的替换:* ? [characters]
        2. 变量替换
            ${parameter:-word} 若parameter为空或未设置,使用word代替parameter进行替换,parameter的值不变
            ${parameter:+word} 若parameter设置了,使用word代替parameter进行替换,parameter的值不变
            ${parameter:=word} 若parameter为空或未设置,则parameter设置为word
            ${parameter:?message} 若parameter为空或未设置,这message作为标准错误打印出来
        3. 命令替换:`command`
        4. 算术替换:$((express))
    
    #参数:
        1. $0:程序名字
        2. $n:第n个参数
        3. $#:参数数量
        4. $*:所有的参数
        5. $@:全部
        6. $?7. $$:
        8. $!9. shift
        
    #输入
        1. 向屏幕:echo printf
        2. 重定向输出:> >> |
        3. 重定向输入:<
        4. read
        
    #文本过滤
        1. head tail grep sort uniq tr
        2. sed awk
    
    #常用工具
        eval
        :
        type
        sleep
        find
        xargs
        expr
        
        
    #控制流
        1. if
            if list1
            then
                list2
            elif list3
            then
                list4
            else
                list5
            fi
        2. case
            case word in
                pattern1)
                    list1
                    ;;
                pattern2)
                    list2
                    ;;
           esac
        3. while
            while command
            do
                list
            done
        4. until
            until command
            do
                list
            done
        5. for
            for name in value1 value2 ... valueN
            do
                list
            done
        6. select
            select name in value1 value2 ... valueN
            do
                list
            done
        7. break continue
        
    #判断
        1. 判断 test [ ]
        2. 文件判断
            -f file:文件是否存在
            -d path:路径是否存在
            -r file:是否可读
            -w file:是否可写
            -x file:是否可执行
        3. 字符串判断
            -z string:字符长度为0
            -n string:字符长度不为0
            string1 = string2:相等
            string1 != string2:不相等
        4. 数字比较
            -eq:=
            -ne:<>
            -lt:<
            -gt:>
            -le:<=
            -ge:>=
        5. 逻辑运算
           !expr:非
           expr1 -a expr2:且
           expr1 -o expr2:或
           &&
           ||
     
    #函数
        1. 定义
            name( ) { list ; }
        
        
    #tips
        #读文件
        while read Line
        do
            echo $Line
        done < file
        #find
            find * -name '*.sh'
        #输入一长段提示
            echo 'one
            two'
            echo 'one
    two'
            cat <<EOF
            NICE DAY IN THE WORLD.
            THIS IS A VERY NICE DAY.
    EOF
        #最后一个参数的求法
        eval last=${$#}
            
            
  • 相关阅读:
    bootstrap学习笔记
    java-多态
    java-重写
    java-继承
    java-包
    java-封装
    java-可变参数
    java-标准输入
    java-构造方法
    private、public、this关键字
  • 原文地址:https://www.cnblogs.com/zhizhou/p/3639454.html
Copyright © 2020-2023  润新知