铜仁市网站建设情况,西部网站域名出售,装饰公司排名,如何制作自己的视频网站shell是什么
shell是一个命令行解释器#xff0c;他为用户提供一个向linux内核发送请求以便运行程序的界面系统级程序#xff0c;用户可以用shell来启动#xff0c;挂起#xff0c;停止甚至编写一些程序。 shell脚本的执行方式 脚本格式要求
脚本以#!/bin/bash开头脚本需…
shell是什么
shell是一个命令行解释器他为用户提供一个向linux内核发送请求以便运行程序的界面系统级程序用户可以用shell来启动挂起停止甚至编写一些程序。 shell脚本的执行方式 脚本格式要求
脚本以#!/bin/bash开头脚本需要有执行权限
编写第一个shell脚本
vim hello.sh
#!/bin/bash
echo hello,shell执行脚本
给hello.sh赋予执行权限使用相对路径执行脚本./hello.sh或者使用绝对路径执行脚本./home/shcode/hello.sh或者使用sh hello.sh也可以使用绝对路径。 shell变量
linux shell中的变量可以分为系统变量和用户自定义变量系统变量$HOME, $PWD, $SHELL, $USER等等比如 echo $SHELL显示当前shell中的所有变量set
shell变量的定义 语法
定义变量变量名值撤销变量unset 变量声明静态变量readonly 变量 静态变量无法unset #!/bin/bash
# 定义变量A
A100
#输出变量需要使用$
echo A$A
echo A$A
# 撤销变量A
unset A
echo A$A
# 声明静态变量B2不能unset
readonly B2
echo B$B
#unset B
# 将指令的结果赋给变量使用或者$()
Cdate
D$(date)
echo C$C
echo D$D
# 使用环境变量 SHELL
echo shell$SHELLvim中多行注解
:!
xxx
...
!定义变量的规范
变量名称可以由字母数字和下划线组成但是不能以数字开头。等号两侧不能由空格变量名一般习惯大写 设置环境变量
vim /etc/profileexport 变量名变量值 将shell变量输出为环境变量/全局变量source 配置文件 让修改后的配置信息生效echo $变量名
在/etc/profile文件中定义TOMCAT_HOME环境变量 位置参数变量
当我们执行一个shell脚本时如果希望获取到命令行的参数信息就可以使用到位置参数变量。例如./myshell.sh 100 200这个就是一个执行shell的命令行可以在myshell脚本中获取到参数消息100和200。
语法
$nn为数字$0表示命令本身$1- 9 表示第一到第九个参数十以上的参数需要使用大括号包含 9表示第一到第九个参数十以上的参数需要使用大括号包含 9表示第一到第九个参数十以上的参数需要使用大括号包含{10}$*代表命令行中所有参数把所有的参数看成一个整体 也代表命令行中所有参数不过 也代表命令行中所有参数不过 也代表命令行中所有参数不过把每个参数区分对待$#代表命令行中所有参数的个数
#!/bin/bash
echo 0$0, 1$1,2$2
echo 所有的参数$*
echo $
echo 参数个数$#预定义变量
就是shell设计者事先已经定义好的变量可以直接在shell脚本中使用。
语法
$$表示当前进程的进程号$!后台运行的最后一个进程的进程号$?最后一次执行的命令的返回状态如果这个变量的值为0证明上一个命令正确执行如果这个变量的值非0则证明上一个命令执行不正确。
#!/bin/bash
echo 当前进程的进程号id$$
# 以后台的方式运行一个脚本并获取他的进程号
/home/shcode/hello.sh
echo 最后一个后台方式运行的进程id$!
echo 执行的结果是$?运算符 语法
$((运算式)) 或 $[运算式] 或 expr m n注意expr运算符间要有空格如果希望将expr结果赋给某个变量使用expr m - nexpr *, /, % (乘除求余
案例
#!/bin/bash
# 案例1计算23* 4
# 使用第一种方式
RES1$(((2 3)*4))
echo res1$RES1
# 使用方式2推荐使用
RES2$[(23)*4]
echo res2$RES2
# 使用方式3 expr
TEMPexpr 2 3
RES4expr $TEMP \* 4
echo temp$TEMP
echo res4$RES4
# 案例2求命令行的两个参数的和 20 50
SUM$[$1$2]
echo sum$SUM流程控制 判断语句 语法
[ condition ] 注意condition前后要有空格非空返回true, 可以使用$?验证0为true1 为fasle) 判断语句 字符串比较整数比较 -lt 小于-le 小于等于 little equal-eq 等于-gt 大于-ge 大于等于-ne 不等于 按照文件权限比较 -r 有读权限-w 有写权限-x 有执行权限 按文件类型比较 -f 文件存在且是常规文件-e 文件存储-d 文件存在且是目录
案例
#!/bin/bash
# 案例1字符串是否相等
if [ ok ok ]
thenecho equal
fi
# 案例223是否大于等于22
if [ 23 -gt 22 ]
thenecho 大于
fi
# 案例3/home/shcode/oper.sh 文件是否存在
if [ -f /home/shcode/oper.sh ]
thenecho 存在
fi
#案例4条件不为空
if [ root ]
thenecho root
fiif判断 语法
if [ condition ]
then语句块
fi
# 或多分支
if [ condition ]
then语句块
elif [ condition ]
then语句块
fi案例
#!/bin/bash
# 如果输入的参数大于等于60输出“及格了”否则输出“不及格”
if [ $1 -ge 60 ]
thenecho 及格了
elif [ $1 -lt 60 ]
thenecho 不及格
ficase语句 语法
case $变量名 in
值1)
语句块
;;
值2)
语句块
;;
*)
如果变量的值都不是以上的值则执行此程序
;;
esac案例
#!/bin/bash
# 当命令行参数为1输出周一是2输出周二其他情况输出other
case $1 in
1)
echo 周一
;;
2)
echo 周二
;;
*)
echo other
;;
esacfor循环 语法
for (( 初始值; 循环控制条件; 变量变化))
do代码
done案例
#!/bin/bash
# 打印命令行输入的参数
# $*是把输入的参数当做一个整体所以只会输出一句
for i in $*
doecho num is $i
done
# $获取输入的参数是分开处理的
for j in $
doecho num is $j
done#!/bin/bash
SUM0
for(( i1; i$1; i))
doSUM$[$SUM$i]
done
echo SUM$SUMwhile循环 语法
while [ condition ]
do
代码块
done案例
#!/bin/bash
# 求1到n的值
SUM0
i0
while [ $i -le $1 ]
doSUM$[$SUM$i]i$[$i1]
done
echo SUM$SUMread读取控制台输入 语法
read (选项)(参数)选项
-p指定读取值时的提示符-t指定读取值时等待的时间秒如果没有在指定的时间内输入就不再等待。
参数
指定读取值的变量名
案例
#!/bin/bash
# 案例1读取控制台输入的num1
read -p 请输入一个数NUM1 NUM1
echo 你输入的NUM1$NUM1
# 案例2读取控制台输入的NUM2值在10s内输入
read -t 10 -p 请输入一个数NUM2 NUM2
echo 你输入的NUM2$NUM2函数
shell中既有系统函数也有自定义函数
系统函数 语法
basename [pathname] [suffix]功能返回完整路径最后/的部分常用于获取文件名 dirname 文件绝对路径自定义函数 语法
function functionName() {Action;[return int;]
}案例
#!/bin/bash
# 案例1:计算输入两个参数的和
function getSum() {SUM$[$n1$n2]echo 和是$SUM
}
# 输入两个值
read -p 请输入一个数n1 n1read -p 请输入一个数n2 n2
# 调用自定义函数
getSum $n1 $n2
文章转载自: http://www.morning.rptdz.cn.gov.cn.rptdz.cn http://www.morning.knmby.cn.gov.cn.knmby.cn http://www.morning.czwed.com.gov.cn.czwed.com http://www.morning.prjty.cn.gov.cn.prjty.cn http://www.morning.kgsws.cn.gov.cn.kgsws.cn http://www.morning.wbns.cn.gov.cn.wbns.cn http://www.morning.ntlxg.cn.gov.cn.ntlxg.cn http://www.morning.gxwyr.cn.gov.cn.gxwyr.cn http://www.morning.hlppp.cn.gov.cn.hlppp.cn http://www.morning.zpyh.cn.gov.cn.zpyh.cn http://www.morning.tjpmf.cn.gov.cn.tjpmf.cn http://www.morning.hmsong.com.gov.cn.hmsong.com http://www.morning.lctrz.cn.gov.cn.lctrz.cn http://www.morning.fqpgf.cn.gov.cn.fqpgf.cn http://www.morning.stcds.cn.gov.cn.stcds.cn http://www.morning.dpfr.cn.gov.cn.dpfr.cn http://www.morning.dzzjq.cn.gov.cn.dzzjq.cn http://www.morning.zpkfb.cn.gov.cn.zpkfb.cn http://www.morning.zjqwr.cn.gov.cn.zjqwr.cn http://www.morning.kxypt.cn.gov.cn.kxypt.cn http://www.morning.jcxgr.cn.gov.cn.jcxgr.cn http://www.morning.nzmhk.cn.gov.cn.nzmhk.cn http://www.morning.ybgt.cn.gov.cn.ybgt.cn http://www.morning.zgdnz.cn.gov.cn.zgdnz.cn http://www.morning.redhoma.com.gov.cn.redhoma.com http://www.morning.aa1585.com.gov.cn.aa1585.com http://www.morning.hkpn.cn.gov.cn.hkpn.cn http://www.morning.stbhn.cn.gov.cn.stbhn.cn http://www.morning.bxgpy.cn.gov.cn.bxgpy.cn http://www.morning.rgrz.cn.gov.cn.rgrz.cn http://www.morning.txgjx.cn.gov.cn.txgjx.cn http://www.morning.yjdql.cn.gov.cn.yjdql.cn http://www.morning.kltsn.cn.gov.cn.kltsn.cn http://www.morning.ctsjq.cn.gov.cn.ctsjq.cn http://www.morning.knscf.cn.gov.cn.knscf.cn http://www.morning.gmnmh.cn.gov.cn.gmnmh.cn http://www.morning.bwznl.cn.gov.cn.bwznl.cn http://www.morning.gwmjy.cn.gov.cn.gwmjy.cn http://www.morning.rdkgw.cn.gov.cn.rdkgw.cn http://www.morning.wzdjl.cn.gov.cn.wzdjl.cn http://www.morning.pswzc.cn.gov.cn.pswzc.cn http://www.morning.wptrm.cn.gov.cn.wptrm.cn http://www.morning.wyctq.cn.gov.cn.wyctq.cn http://www.morning.ngcsh.cn.gov.cn.ngcsh.cn http://www.morning.rykx.cn.gov.cn.rykx.cn http://www.morning.fkwp.cn.gov.cn.fkwp.cn http://www.morning.tdnbw.cn.gov.cn.tdnbw.cn http://www.morning.jqcrf.cn.gov.cn.jqcrf.cn http://www.morning.ptmsk.cn.gov.cn.ptmsk.cn http://www.morning.gbxxh.cn.gov.cn.gbxxh.cn http://www.morning.njstzsh.com.gov.cn.njstzsh.com http://www.morning.gxklx.cn.gov.cn.gxklx.cn http://www.morning.lqpzb.cn.gov.cn.lqpzb.cn http://www.morning.rjhts.cn.gov.cn.rjhts.cn http://www.morning.bqhlp.cn.gov.cn.bqhlp.cn http://www.morning.npxht.cn.gov.cn.npxht.cn http://www.morning.rmppf.cn.gov.cn.rmppf.cn http://www.morning.dnhdp.cn.gov.cn.dnhdp.cn http://www.morning.wwklf.cn.gov.cn.wwklf.cn http://www.morning.zxqyd.cn.gov.cn.zxqyd.cn http://www.morning.sglcg.cn.gov.cn.sglcg.cn http://www.morning.vtbtje.cn.gov.cn.vtbtje.cn http://www.morning.lcbt.cn.gov.cn.lcbt.cn http://www.morning.fglzk.cn.gov.cn.fglzk.cn http://www.morning.sxcwc.cn.gov.cn.sxcwc.cn http://www.morning.kzyr.cn.gov.cn.kzyr.cn http://www.morning.rckmz.cn.gov.cn.rckmz.cn http://www.morning.nzxdz.cn.gov.cn.nzxdz.cn http://www.morning.xclgf.cn.gov.cn.xclgf.cn http://www.morning.tpnxr.cn.gov.cn.tpnxr.cn http://www.morning.cttgj.cn.gov.cn.cttgj.cn http://www.morning.phechi.com.gov.cn.phechi.com http://www.morning.rnnq.cn.gov.cn.rnnq.cn http://www.morning.jczjf.cn.gov.cn.jczjf.cn http://www.morning.hymmq.cn.gov.cn.hymmq.cn http://www.morning.ttrdr.cn.gov.cn.ttrdr.cn http://www.morning.gbjxj.cn.gov.cn.gbjxj.cn http://www.morning.syhwc.cn.gov.cn.syhwc.cn http://www.morning.lonlie.com.gov.cn.lonlie.com http://www.morning.dgfpp.cn.gov.cn.dgfpp.cn