Linux实操篇4 Shell编程

Shell编程
    
    Shell是什么
        *******
    
    Shell快速入门
        
        脚本执行方式
            脚本格式要求
                脚本以#!/bin/bash开头
                脚本需要有可执行权限
            编写一个脚本 输出hello world 
                给定一个x权限  chmod 744 myShell.sh      ./myShell.sh
                或者用 sh myShell.sh执行  不推荐
            
        Shell变量
            1.shell变量分为系统变量和用户自定义变量
            2.系统变量 $HOME $PWD $SHELL $USER 等等
            3.显示当前shell中的所有变量 set
        
            
            定义变量:变量=值
            撤销变量:unset 变量
            声明静态变量:readonly 变量, 注意:不能unset
            
            将命令的结果返回赋值给变量
                A=`ls -l` 反引号,Esc键下面的 运行里面的命令,并把结果返回给变量A
                A=$(ls -l)
                
                
            设置环境变量
                基本语法
                    export 变量名=变量值  将shell变量输出为环境变量
                    source 配置文件  让修改后的配置信息立即生效
                    echo $变量名  查询环境变量的值
                    
                    多行注释
                    :<<!
                    ****
                    ****
                    !
                    
            位置参数变量
                当我们执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量,
                比如 /myShell.sh 100 200  这是一个执行shell的命令行 可以在myShell脚本中获取到参数信息
                
                基本语法
                    $n  n为数字 $0代表命令本身 $1-$9代表第一到第九个参数 十以上的参数用大括号包含 ${10}
                    $*  代表命令行中的所有参数 $*把所有参数看成一个整体
                    $@  也是所有参数,不过$@把每个参数区分对待
                    $#  命令行中参数的个数
            
            
            预定义变量
                $$ 获取当前进程号PID
                $! 后台运行的最后一个进程的进程号PID
                $? 最后一次执行命令的返回状态,如果这个变量的值为0,证明上一个命令正确执行 非0,则上一个命令执行不正确
                
                
            运算符
                
                基本语法
                    $((运算式))
                    $[运算式]   推荐使用
                    RESULT=`expr m + n`
                    expr \*,/,% 乘 除 取余
                    
            条件判断
                基本语法
                    [ condition ] 注意 condition前后要有空格
                    非空返回true 可使用$?验证 (0为true >1为false)
                    
                    [ atguigu ] 返回true
                    []            返回false
                    [ condition ]&& echo OK || echo notok  条件满足,执行后面的语句
                    
                判断语句
                    两个整数的比较
                        =   字符串比较
                        -lt 小于
                        -le 小于等于
                        -eq 等于
                        -gt 大于
                        -ge 大于等于
                        -ne 不等于
                    按照文件权限进行判断
                        -w    -r    -x    
                    按照文件类型进行判断
                        -f 文件存在并且是一个常规文件
                        -e 文件存在
                        -d 文件存在并且是一个目录
                        
                流程控制
                    if 判断
                        if [ 条件判断式 ];then
                            程序
                        fi 
                    或者
                    if [ 条件判断式 ]
                        then
                            程序
                        elif [ 条件判断式 ]
                            then
                                程序
                        fi
                        
                    case 语句
                        case $变量名 in
                        "值1")
                        如果变量的值等于值1,则执行程序1
                        ;;
                        "值2")
                        如果变量的值等于值2,则执行程序2
                        ;;
                        ...省略其他分支...
                        *)
                        如果变量的值都不是以上的值,则执行此程序
                        ;;
                        esac
                        
                    for 循环
                        for 变量 in 值1 值2 值3 ...
                        do
                            程序
                        done
                        或者
                        for ((初始值;循环控制条件;变量变化))
                        do
                            程序
                        done
                    
                    while 循环
                        while [ 条件判断式 ]
                            do
                                程序
                            done
                        
                read 读取控制台输入
                    read [选项] (参数)
                    选项
                        -p 指定读取值时的提示符
                        -t 指定读取值时等待的时间 如果没有指定的时间输入 则不等待
                    参数    
                        变量:指定读取值的变量名
                        
                        
                函数
                    系统函数
                        basename 返回完整路径最后/的部分,常用于获取文件名
                        basename [pathname] [suffix]
                        basename [string] [suffix]
                        
                        basename /home/aaa/test.txt            test.txt
                        basename /home/aaa/test.txt .txt    test

                        dirname 返回完整路径最后/的 前面的部分,常用于返回路径部分
                        
                        dirname /home/aaa/test.txt        /home/aaa
                        
                    自定义函数
                        [function] funname[()]
                        {
                            Action;
                            [return int;]
                        }
                        
                        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值