简单的shell编程的语法

shell

1)	脚本以#!/bin/bash 开头
#脚本的常用执行方式
	1)给shell文件x的权限
    2)sh+脚本
Shell 的变量的介绍
	1)系统变量:$HOME$PWD$SHELL$USER 等等比如: echo $HOME	等等..
	2)显示当前 shell 中所有变量:set
		1)定义变量:变量=值 2)撤销变量:unset 变量
		2) 声明静态变量:readonly 变量,注意:不能 unset
		===========================================
		1)	变量名称可以由字母、数字和下划线组成,但是不能以数字开头。
		2)	等号两侧不能有空格
		3)	变量名称一般习惯为大写
	2)将命令的返回值赋给变量(重点)
		1)	A=`ls -la` 反引号,运行里面的命令,并把结果返回给变量 A
		2)	A=$(ls -la) 等价于反引号

#设置环境变量
1)	export 变量名=变量值 (功能描述:将 shell 变量输出为环境变量)
2)	source  配置文件	(功能描述:让修改后的配置信息立即生效)
3)	echo $变量名	(功能描述:查询环境变量的值)

#位置参数的介绍
$n (功能描述:n 为数字,$0 代表命令本身,$1-$9 代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10}$* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
$@(功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
$#(功能描述:这个变量代表命令行中所有参数的个数)

#预定义变量
$$ (功能描述:当前进程的进程号(PID))
$!	(功能描述:后台运行的最后一个进程的进程号(PID))
$? (功能描述:最后一次执行的命令的返回状态。如果这个变量的值为 0,证明上一个命令正确执行;如果这个变量的值为非 0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确)

#运算符
1)“$((运算式))”或“$[运算式]”
2)	expr m + n
注意 expr 运算符间要有空格
3)	expr m - n
4)	expr	\*, /, %	乘,除,取余


#条件判断
[ condition ](注意 condition 前后要有空格)
非空返回 true,可使用$?验证(0 为 true,>1 为 false)
一些判断条件
	1)	两个整数的比较
    = 字符串比较
    -lt 小于
    -le 小于等于
    -eq 等于
    -gt 大于
    -ge 大于等于

    -ne 不等于
    2)	按照文件权限进行判断
    -r 有读的权限 [ -r 文件 ]
    -w 有写的权限
    -x 有执行的权限
    3)	按照文件类型进行判断
    -f 文件存在并且是一个常规的文件
    -e 文件存在
    -d 文件存在并是一个目录
    
#流程控制
    if [ 条件判断式 ];then
    程序
    fi
    或者
    
    if [ 条件判断式 ] then
    程序
    elif [条件判断式]

    then
    程序
    fi

    注意事项:(1)[ 条件判断式 ],中括号和条件判断式之间必须有空格 (2) 推荐使用第二种方式
    
    =========================================================================
    for 变量 in  值 1  值 2  值 3…
    do
    程序
    done
    --------
    for (( 初始值;循环控制条件;变量变化 )) do
    程序
    done
    =========================================================================
    while [ 条件判断式 ] do
    程序
    done

#read读取控制台输入
	read(选项)(参数)
    选项:

    -p:指定读取值时的提示符;
    -t:指定读取值时等待的时间(秒),如果没有在指定的时间内输入,就不再等待了。。参数
    变量:指定读取值的变量名

#函数
	系统函数
        •	basename 基本语法
        功能:返回完整路径最后 / 的部分,常用于获取文件名
        basename [pathname] [suffix]

        basename [string] [suffix]	(功能描述:basename 命令会删掉所有的前缀包括最后一个(‘/’) 字符,然后将字符串显示         出来。
        选项:
        suffix 为后缀,如果 suffix 被指定了,basename 会将 pathname 或 string 中的 suffix 去掉。


        •	dirname 基本语法
        功能:返回完整路径最后 / 的前面的部分,常用于返回路径部分
        dirname 文件绝对路径 (功能描述:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部         分))
	
	自定义函数
		[ function ] funname[()]
        {

        Action; [return int;]
        }


        调用直接写函数名:funname	[]
    basename [pathname] [suffix]

    basename [string] [suffix]	(功能描述:basename 命令会删掉所有的前缀包括最后一个(‘/’) 字符,然后将字符串显示         出来。
    选项:
    suffix 为后缀,如果 suffix 被指定了,basename 会将 pathname 或 string 中的 suffix 去掉。


    •	dirname 基本语法
    功能:返回完整路径最后 / 的前面的部分,常用于返回路径部分
    dirname 文件绝对路径 (功能描述:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部         分))

自定义函数
	[ function ] funname[()]
    {

    Action; [return int;]
    }


    调用直接写函数名:funname	[值]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值