M25-7

 懒人少语之第七周  1 ??????实例??????
  2
  3 #!/bin/bash
  4 a=0
  5 until [ ! $a -lt 10 ];do    `当只有判断为假的时候进入循环`
  6     echo $a
  7     a=`expr $a + 1`
  8 done
  9
 10 ??your_name="fun"   `定义变量时,变量名不使用美元符号($,PHP语言中变量需要)`
 11     首个字符必须为字母(a-z,A-Z)。
 12     中间不能有空格,可以使用下划线(_)。
 13     不能使用标点符号。
 14     不能使用bash里的关键字(可用help命令查看保留关键字)。
 15
 16 ??for file in `ls /etc` `除了显式地直接赋值,还可以用语句给变量赋值`
 17     以上语句将 /etc 下目录的文件名循环出来
 18
 19 ??your_name="Ltb"   `只要在变量名前面加美元符号即可`
 20    echo $your_name
 21    echo ${your_name}
 22     变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:
 23         for skill in Ada Coffe Action Java; do
 24             echo "I am good at ${skill}Script"
 25         done
 26     如果不给skill变量加花括号,写成echo "I am good at $skillScript",解释器就会把$skillScript当成一个变量(其值为空),代码执行结果就不是我们期望的样子了。
 27
 28 ??your_name="tom"   `已定义的变量,可以被重新定义`
 29    echo $your_name
 30    your_name="alibaba"
 31    echo $your_name
 32     只有使用变量的时候才加美元符($)
 33
 34 ??#!/bin/bash   `使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变`
 35     MyUrl="http://tcpip.top"
 36     readonly MyUrl
 37     MyUrl="http://tcpip.top"
 38     结果如下:
 39         /bin/sh: NAME: This variable is read only.
 40
 41 ??unset variable_name   `使用unset命令可删除变量`
 42     变量被删除后不能再次使用,unset命令不能删除只读变量。
 43     #!/bin/bash
 44     MyUrl="http://tcpip.top"
 45     unset MyUrl
 46     echo $MyUrl
 47     以上实例执行将没有任何输出
 48
 49 ??变量类型  `本地变量/环境变量/局部变量/位置变量/特殊变量`
 50     1. `本地变量` 仅在当前shell进程有效,长时间在当前shell当中累积的变量越多,越占内存.unset
 51     2. `环境变量` 所有程序,包括shell启动的程序,子程序,都能访问环境变量,
 52         有些程序需要环境变量来保证其正常运行. 必要的时候shell脚本也可以定义环境变量
 53     3. `局部变量` 限定在脚本或命令中定义,仅在当前shell实例有效,退出脚本或其它shell启动程序不能访问局部变量.
 54     4. `位置变量` 通常是$0 $1 $2.. $* [email protected] 等表示.
 55     5. `特殊变量` $0 $* [email protected] $$ $! $? $- 包含其他字符的变量有特殊含义,这样的变量被称为特殊变量
 56
 57 ??字符串   `常用数字和字符串类型,可用单引号/双引号/不用引号等方式表示`
 58     单引号字符串限制:
 59         单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
 60         单引号字串中不能出现单引号(对单引号使用转义符后也不行)。
 61     双引号
 62         Your_Name=‘ltb‘
 63         str="Hello,this is \"$ltb\"! \n"
 64         双引号里可以有变量
 65         双引号里可以出现转义字符
 66
 67 ??多个字符串连接
 68     Your_Name="ltb"
 69     Num="hello, "$ltb" !"
 70     Num_1="hello, ${ltb} !"
 71     echo $Num $nUM_1
 72
 73 ??获取字符串长度
 74     string="Chinese"
 75     echo ${#string}
 76         #输出 7
 77     echo $expr length "$string"
 78
 79 ??提取字符串
 80     以下实例从字符串第 4 个字符开始截取 2 个字符:
 81         string="tcpip is a great site"
 82         echo  ${string:4:2}
 83             #输出 ip
 84
 85 ??查找字符串
 86     查找字符"s" 的位置:
 87     string="tcpip is a great company"
 88     echo `expr index "$string" s`
 89         # 输出 8
 90
 91 ??定义数组
 92     Array_Name=(value0 value1 value2 value3)
 93     Array_Name2=(
 94                 value0
 95                 value1
 96                 value2
 97                 value3
 98                 )
 99     还可以单独定义数组
100         array_name[0]=value0
101         array_name[1]=value1
102         array_name[n]=valuen
103         可以不使用连续的下标,而且下标的范围没有限制
104
105 ??读取属组
106     valuen=${array_name[n]}
107     valuen=${array_name[@]}  `@符号可获取数组中所有元素`
108
109 ??获取数组长度
110     获取属组长度的方法与获取字符串长度方法相同,例如:
111         length=${#Array_Name[@]}    `取得属组元素的个数`
112         length=${#Array_Name[*]}
113         lengthx=${#Array_Name2[n]}  `取得数组单个元素的长度`
114
115 ??Shell注释
116     以"#"开头的行就是注释,会被解释器忽略
117      #!/bin/bash
118      # ----------------+---------------------------------------+
119      # * Author        : Name
120      # * Email         : [email protected]
121      # * Create time   : 2017-08-20 18:03
122      # * Last modified : 2017-08-20 18:03
123      # * Filename      : test33.sh
124      # * Description   :
125      # ----------------+---------------------------------------+
126      每一行加个#符号太费力了,可以把这一段要注释的代码用一对花括号括起来,定义成一个函数,
127      没有地方调用这个函数,这块代码就不会执行,达到了和注释一样的效果
时间: 2024-10-05 04:33:25

M25-7的相关文章

sdutoj Thrall’s Dream

http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2604 Thrall’s Dream Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 We never paid any heed to the ancient prophecies, like fools we clung to the old hatreds, and fought

2014ACM/ICPC亚洲区广州站 北大出题

http://acm.hdu.edu.cn/showproblem.php?pid=5131 现场赛第一个题,水题.题意:给水浒英雄排序,按照杀人数大到小,相同按照名字字典序小到大.输出.然后对每个查询的名字,计数有多少人杀人数大于他,输出个数加1,计数有多少人杀人数相同,但名字小,如果没有不输出,否则输出个数加1. 1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 using namespa

POJ2955BRACKETS(区间DP括号匹配)

%E7%94%A8UNITY5%E5%BC%80%E5%8F%91%E7%AC%AC%E4%B8%80%E4%B8%AA%E6%89%8B%E6%9C%BA%E6%B8%B8%E6%88%8F%281%29%E5%90%84%E7%A7%8D%E6%8F%92%E4%BB%B6%E7%9A%84%E5%87%86%E5%A4%87 http://mp3.baidu.com/songlist/502238688?54R6m1&pgC5_8fA5=XF4 http://mp3.baidu.com/s

Windows Phone开发(20):当MediaElement和VideoBrush合作的时候

前面说的那么多控件都是"静态"的,都是"哑吧"的,今天,你有没有兴趣研究一下,既能"有声有色"又操作简单的控件吗?如果有,请随我来. MediaElement播放多媒体文件. 首先,隆重介绍一下MediaElement,为什么要隆重呢?因为它简单,真的,你一定会玩的,但是,MediaElement功能强大,它可以播放音频和视频,只要支持的格式就行了. 要设置播放的音频或视频文件,你只需要设置Source属性即可,它其实就是一个URI,如果要播放你

vue2购物车ch3-(过滤器使用 单件商品金额计算 全选全不选 总金额计算 删除商品功能)

1 index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!-- Always force latest IE rendering engine or request Chrome Frame --> <meta content="IE=edge,chrome=1" http-equiv

vue2购物车ch1-(安装依赖、简单配置、 axios获取api的模拟数据)

0--项目说明 说明此项目源自某课网购物车教程,但是在开发过程中,发现在开发过程中用的还是 vue-resource(宣布不更新的类$.ajx()插件),为了以后的发展使用axios.js,详情参考 1 初始静态页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!-- Always force latest IE renderin

并查集详解 (转)

http://blog.csdn.net/dellaserss/article/details/7724401 我从CSDN转的文章,原文作者我也不懂是谁,文章写得真的是诙谐幽默,使得内容更容易理解了. 来看一个实例,杭电OJ 1232畅通工程 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可).问最少还需要建

[BZOJ1046] [HAOI2007] 上升序列 (dp)

Description 对于一个给定的S={a1,a2,a3,…,an},若有P={ax1,ax2,ax3,…,axm},满足(x1 < x2 < … < xm)且( ax1 < ax2 < … < axm).那么就称P为S的一个上升序列.如果有多个P满足条件,那么我们想求字典序最小的那个.任务给出S序列,给出若干询问.对于第i个询问,求出长度为Li的上升序列,如有多个,求出字典序最小的那个(即首先x1最小,如果不唯一,再看x2最小……),如果不存在长度为Li的上升序列

率坷现谲诰uz6hf13j36

别看在史莱克学院武魂系的地位要远远高于魂导系,可论富有程度却是拍马难及.很多时候武魂系还要依靠魂导系拨款呢."人类果然是藏龙卧虎,那天我只是流露出一丝自己的气息竟然也会被察觉.真是危险.不过,这只是个最弱小的封号斗罗.真没想到,有一天这种修为的存在也敢在我面前耀武扬威.要是以前,我瞬间就让他永远成为冰雕."第一百三十六章 进海神阁是要门票的(中)巫风在心生恐惧的时候就已经有了准备,将魂力集中于脑部防御.但是.就在这一瞬,他只觉得一根灰色的钢针缓缓的刺到自己面前,她甚至能够清晰的感觉到那

hihocoder1062 最近公共祖先&#183;一

问题描述: 已知人名构成的父子关系树(或者森林),对于给定的两个人名name1和name2,求其最近公共祖先.题目保证人名不重复. 分析: 利用C++ STL中的map和set容器可以很方便的实现.用map容器存储父子关系.对于每一个询问,先将从name1开始到树根的路径上的所有人名放入一个set容器,然后从name2开始向树根上溯,逐个检测人名是否已在set中即可. 我的代码: 1 #include <iostream> 2 #include <string> 3 #includ