当前位置: 首页 > news >正文

响应式网站几个断点/长沙百度

响应式网站几个断点,长沙百度,建设银行信用卡网站是哪个好,多少钱一盒文章目录一 Shell函数1 两个数求和2自定义函数3.函数的作用范围4函数的参数二Shell数组应用场景包括数组定义方法数组包括的数据类型Shell数组操作获取数组长度${数组名[/*]}读取某下标赋值${数组名[下表]}数组遍历三Shell脚本调试echo命令bash 命令命令语法常用选项set命令实操…

文章目录

  • 一 Shell函数
    • 1 两个数求和
    • 2自定义函数
    • 3.函数的作用范围
    • 4函数的参数
    • 二Shell数组
    • 应用场景包括
    • 数组定义方法
    • 数组包括的数据类型
    • Shell数组操作
      • 获取数组长度
      • ${数组名[@/*]}
      • 读取某下标赋值
      • ${数组名[下表]}
      • 数组遍历
  • 三Shell脚本调试
    • echo命令
    • bash 命令
      • 命令语法
      • 常用选项
    • set命令
    • 实操解析
  • 冒泡排序
    • 解析
    • 排序流程
    • 脚本排序

一 Shell函数

将命令序列按格式写在一起
可方便重复使用命令序列
Shell函数定义
[function] 函数名(){
命令序列
[return x]
}
调用函数的方法
函数名 [参数1] [参数2]
函数应用示例
示例1
两个数子就和
通过sum() {}定义函数
使用read命令交互输入两个数并求和
示例2
编写登录系统后便可使用的用户自定义函数
编写用户自定义函数文件/root/function
在当前Shell中加载可执行的函数文件/root/function
在~/.bashrc文件中添加source /root/function命令

1 两个数求和

I root@localhost~ ]# vim sum. sh
#!/bin/bash
sum() {
read -p"请输入第一个数:"NUM1
read -p"请输入第二个数:"NUM2
echo "你输入的两个数为: $NUM1 和$NUM2 "SUM=(( $NUM1 +$NUM2))
echo "两个数的和为: $SUM"
}
sum
root@localhost~l # chmod +x sum. sh
I root@localhost~ ]# . /sum. sh
请输入第一个数: 2
请输入第二个数: 3
“你输入的两个数为: 2和3.”
“两个数的和为: 5

2自定义函数

[root@localhost~]#vim function
servicectl_usage  (){
echo "Usage:service <service-name> <start|stop|restart|reloadstatus>"
return 1
}
chk_centos_ver () {
grep "CentOS.*release 7." /etc/centos-release &>
/dev/null && echo "7"
grep "CentOS.*release 6." /etc/centos-release &>
/dev/null && echo "6"
grep "CentOS.*release 5." /etc/centos-release &>
/dev/null && echo "5"
}
servicectl () {
[[ -z $1  ||  -z $2 ]]  &&  servicectl_usage
[  $(chk_centos_ver)=="7" ]  &&  systemctl  $2
${1}. service ||  service $1  $2
}
[root@localhost~]#chmod +x  function 
[root@localhost~]#source  function
[root@localhost~]#echo 'source /root/function'  >> ~/.bashrc

3.函数的作用范围

函数在Shell脚本中仅在当前Shell环境中有效
Shell脚本中变量默认全局有效
将变量限定在函数内部使用local命令
示例
函数内部变量通过local来实现
通过定义myfun函数,在其内部设置局部变量i
函数内部和外部分别赋值,进行结果验证

[ root@localhost~ ]# vim fun_ _scope. sh
myfun ()
{
local i
i=8
echo $i
}
i=9
myfun
echo $i
root@localhost # chmod +x fun_ scope. sh
[root@localhost ]# . / fun_ scope. sh
8
9

4函数的参数

参数的用法
函数名称 参数1 参数2 参数3 …
参数的表示方法
$1 $2 3.......3.......3.......{10}${11}…
示例
通过函数参数将日志信息写入文件
通过定义appendfile函数实现

[ root@localhost~ ]#vim write_log.sh
#!/bin/bash
mydir="/data"  outfile="${mydir}/my.log"
[ -e " ${mydir}"]  ||  mkdir -p $ {mkdir}
appendfile()
{
echo "$2"  >> "$1"
}
appendfile  ${outfile} "first line content."
appendfile  ${outfile} "second line content."
[ root@localhost~ ]# chomd +x write_log.sh
[ root@localhost~ ]# ./write_log.sh

5递归函数
调用自己本身的函数
示例
递归遍历目录
通过定义递归函数list_files来实现

[ root@localhost~ ]# vim fun_recursion.sh
function list_files()
{
for  f  in  'ls  $1';
do
if  [  -d "$1/$f" ] ;
then echo  "$2$f"
list_files "$1/$f" " $2" 
else
echo "$2$f"
fi
done
}
list_files "/var/log" "" 
[ root@localhost~ ]# chomd +x fun_recursion.sh

二Shell数组

应用场景包括

获取数组长度
获取元素长度
遍历元素
元素切片
元素替换
元素删除

数组定义方法

方法一
数组名= (value0 value1 value2 …)
方法二
数组名= ([0]=value [1]=value [2]=value…)
方法三
列表名=“value0 value1 value2…”
数组名=($列表名)
方法四
数组名[0]=“value”
数组名[1]=“value”
数组名[2]=“value”

数组包括的数据类型

数值类型
字符类型使用""或''定义

Shell数组操作

获取数组长度

${数组名[@/*]}

读取某下标赋值

${数组名[下表]}

数组遍历

[root@localhost ~]# arr_number=(1 2 3 4 5);
[root@localhost ~]# arr_ length=${#arr_ number[*]}
[root@localhost ~]# echo $arr_ length
5
[root@localhost ~]# arr index2=${arr_ number[2]}
[root@localhost ~]# echo $arr_ index2
3
[root@localhost ~]# for v in ${arr_ number[@]}
> do
>    echo $v
> done
1
2
3
4
5
[root@centos-7~]arr=(1234 5)
[root@centos-7~]# echo ${arr[@]}
1 2 3 4 5
[root@centos-7~]# echo ${arr[@:0:2}
1 2
[root@centos-7~]# echo ${arr[@:2:3}
3 4 5 
[root@centos-7 ~]# arr=(1 2 3 4 5)
[root@centos-7 ~]# echo ${arr[@]4/66}
1 2 3 66 5
[root@centos-7 ~]# echo ${arr[@]}
1 2 3 4 5
[root@centos-7 ~]# arr=(${arr[@]/4/66})
[root@centos-7 ~]# echo ${arr[@]}
1 2 3 66 5
[root@centos-7 ~]# arr=(1 2 3 4 5)
[root@centos-7 ~]# unset arr
[root@centos-7 ~]# echo ${arr[*]}
[root@centos-7 ~]# arr=(1 2 3 4 5)
[root@centos-7 ~]# unset arr[2]
[root@centos-7 ~]# echo ${arr[*]}
1 2 4 5

三Shell脚本调试

echo命令

bash 命令

命令语法

sh [-nux] 脚本名

常用选项

-n、-v、-x
shell [-nvx] 脚本名
-n:不会执行该脚本,仅查询脚本语法是否有问题,如果没有语法问题就不显示任何内容,如果有问题会提示报错。
-v: 在执行脚本时,先将脚本的内容输出到屏幕E然后执行脚本,如果有错误,也
会给出错误提示。
-x:
将执行的脚本内容输出到屏幕上,这个是对调试很有用的参数。

set命令

set -x:开启调节模式
set +x:关闭调节模式

实操解析

[root@server2 ~]# vi grade1.sh
[root@server2 ~]# chmod +x grade1.sh
[root@server2 ~]# ./grade1.sh 
#!/bin/bash
set -x //开启调试模式
read -p"请输入您的分数(0-100):" GRADE
if [ $GRADE -ge 85 ] && [ $GRADE -le 100]
then
echo "$GRADE 分!优秀"set +x //关闭调试模式
elif [ $GRADE -ge 70] && [ $GRADE -le 84]
then
echo"$GRADE 分,合格"else .
echo "$GRADE 分?不合格"
fi

冒泡排序

解析

通过对数据循环排序,得出数值大小,进行排序

排序流程

score =(10 5 1 100 70 60)
第一轮 比较了5次
10 5 1 100 70 60
5 10 1 100 70 60 1次
5 1 10 100 70 60 2次
5 1 10 100 70 60 3次
5 1 10 70 100 60 4次
5 1 10 70 60 100 5次 得出最大数值

第二轮 比较了4次
5 1 10 70 60
1 5 10 70 60 1次
1 5 10 70 60 2次
1 5 10 70 60 3次
1 5 10 60 70 4次 得出倒数第二大数值

第三轮 比较了3次
1 5 10 60 得出倒数第三大数值

第四轮 比较了2次
1 5 10 得出倒数第四大数值

第五轮 比较了1次
1 5 得出倒数第五大数值

脚本排序

[root@server2 ~]# vi maopao.sh
[root@server2 ~]# chmod +x maopao.sh 
[root@server2 ~]# ./maopao.sh 
#!/bin/bash
# 冒泡排序
score=(10 5 1 100 70 60)
for ((i=1;i<${#score[*]};i++))
dofor ((j=0;j<${#score[*]}-$i;j++))doif [ ${score[j]} -gt ${score[$(($j+1))]} ]then temp=${score[j]}       中间变量score[j]=${score[$(($j+1))]}score[$(($j+1))]=$tempfidone
done
echo ${score[*]}此处[$(($j+1))]可以替换为[j+1]

以上方法较为局限,需要给定数值才可计算
键盘输入冒泡排序

[root@server2 ~]# vi maopao.sh
[root@server2 ~]# chmod +x maopao.sh 
[root@server2 ~]# ./maopao.sh 
#!/bin/bash
# 键盘输入冒泡排序
k=0                         数组第一位元素
while true                一直继续,循环
doread -p "是否需要输入数值?" do     变量名if [ $do == "no" ]   只要不输入no就一直继续then break            退出循环firead -p "请输入第$(($k+1))个元素" keyscore[$k]=$keylet k++
donefor ((i=1;i<${#score[*]};i++))
dofor ((j=0;j<${#score[*]}-$i;j++))doif [ ${score[j]} -gt ${score[j+1]} ]then temp=${score[j]}score[j]=${score[j+1]}score[j+1]=$tempfidone
done
echo ${score[*]}
http://www.jmfq.cn/news/4914145.html

相关文章:

  • 广东专注网站建设怎么样/微信推广
  • 网站设计要求 优帮云/快速的网站设计制作
  • 现在开天猫店需要多少钱/上海自动seo
  • 怎么建设网站阿里云/windows优化大师卸载不掉
  • 新动力网站建设公司/搜索引擎优化方案
  • 郑州怎么做外贸公司网站/最新seo自动优化软件
  • 快递公司网站怎么做/seo顾问咨询
  • 婚恋网站建设/女教师网课入06654侵录屏
  • 南阳网站seo推广公司哪家好/seo诊断分析在线工具
  • 网站建设远程工作/奶糖 seo 博客
  • 建湖网站优化公司/wordpress建站
  • 深圳做网站jm3q/爱网站关键词查询工具长尾
  • 阿里巴巴个人网站怎么做/怎样做推广更有效
  • 网页模板源码/seo 网站优化推广排名教程
  • 海南电商网站建设/网站建设首页
  • 青浦网络公司网站/武汉seo论坛
  • 网站建设及推广培训/谷歌搜索指数查询
  • 南昌网站建设排行/广州优化seo
  • 欧美服装网站模板/seo简介
  • 手表电商网站/关于seo如何优化
  • 酷站 网站模板/品牌推广策略
  • 北京做网站哪个公司好/seo优化公司如何做
  • 福田区住房和建设局官方网站/手机端网站优化
  • 电脑上不了建设厅网站/百度优化师
  • 如何增加网站转化率/小红书关键词排名优化
  • 免费建电子商务网站/青岛排名推广
  • 上海外贸网站google建站/友情链接检索
  • 淄博学校网站建设定制/青岛网络推广
  • 17网站一起做网/重庆关键词优化平台
  • 如何建立网站视频/企业查询网站