Linux入门视频笔记二(Shell)
一、Shell脚本编程基础
1、简单地理解是脚本就是一堆的Linux命令或其他命令,把他们写到一起,打包成一个文件就是脚本,Shell脚本一般以.sh后缀结尾
2、sh text.sh:运行text.sh脚本
3、Linux支持变量,和c语言一样(但似乎不用声明类型),比如在脚本里写a = 10(这里为了看起来清除一点=两边加了空格,但实际上在shell脚本语言中这是错误的哦)。
4、echo:输出语句
①echo $a:输出变量a(赋值一个变量时不需要写$,使用或读取一个变量需要写)
②echo "Hello World":输出字符串(可以和上面的拼接在一起哦echo "Hello World" $a,并且在Linux里对于一个字符串拉说写不写双引号问题不大,echo Hello World这样也可以得到正常的输出)
5、expr:用来计算一个式子(+ - \* / )赋值的地方不能写空格,运算符两边必须写空格。
①c=`expr $a + $b`:计算a+b(记得要把这个式子括起来哦,如果+两边没有空格的话会显示a+b而不是他们的和)
②c=`expr $a \* $b`:计算a*b(因为在正则表达式中“*”被认为可以重复很多次,所以在Shell里面也会这么认为,所以前面要加转义符号“\”才能得到表示乘)
Linux脚本语言里括号也是要写转义符的\( \)。
6、if:条件判断语句
1 if[...]
2 then
3 ...
4 else
5 ...
6 fi
①输出a和b的较大者:
1 if [ $a -gt $b ]
2 then
3 echo $a
4 else
5 echo $b
6 fi
>:-gt(greater than)
<:-lt(less than)
>=:-ge(greater equal)
<=:-le(less equal)
==:-eq(equal)
!=:-ne(not equal)
7、for:循环语句
1 for x in ....
2 do
3 ...
4 done
注释用#
①输出1-10(早期):
1 for x in 1 2 3 4 5 6 7 8 10 #赋值不用$哦
2 do
3 echo $x
4 done
②输出1-10:
1 for x in {1 .. 10} #可能会不支持
2 do
3 echo $x
4 done
8、while:循环语句
1 while [ .. ]
2 do
3 ...
4 done
①输出1-10:
1 x=1
2 while [ $x -lt 10 ]
3 do
4 echo $x
5 x=`expr $x + 1`
6 done
二、字符串
1、定义:a=“hello”
1 #输出hello world
2 a=hello
3 b=world
4 echo $a $b
2、read a:输入a
3、比较两个字符串:通过一个"="比较是否相等,“!=”比较是否不等(和C一样)
1 password="123"
2
3 echo "Please enter a password:"
4 read userPassword
5
6 if [ userPassword = password]
7 then
8 echo "密码正确!"
9 else
10 echo “密码错误!”
11 fi
4、拼接字符串:str3="$s1 $s2"(中间不加空格的话两个字符串就拼在一起了)
5、判断是否是空字符串:if[ -z $s1](-z表示zero,即长度是否为0,-n表示非0)
三、数组(记得用bash运行)
1、定义:arr=(7 8 9 10)
2、输出8:${arr[1]}({}表示数组)
3、输出整个数组:
1 arr=(7 8 9 10)
2
3 for i in ${arr[@]}
4 do
5 echo $i
6 done
最新文章
- Redis执行Lua脚本的情况
- Vue入门笔记#过渡
- 使用ar命令删除iOS静态库重复编译的.o文件
- 求助:IIS中部署WCF,生成的WSDL中怎么把“计算机名”改成IP==找到一个解决办法
- Eclipse3.7中搭建Android开发环境文档教程和视频教程
- Centos 6.5 RedHat 6 安装mysql
- hdu 5432 Pyramid Split(二分搜索)
- js对象详解(JavaScript对象深度剖析,深度理解js对象)
- 阿里云免费购买SSL证书,nginx无缝升级https
- jquery.string.js
- Git如何克隆远程仓库
- SNF快速开发平台项目实践介绍
- 将string转为同名类名,方法名。(c#反射)
- PSP个人软件开发系统面向对象需求分析与设计文档
- 06-python opencv 使用摄像头捕获视频并显示
- 对象关系映射(ORM)
- Python 面试题学习
- GitHub和SVN的区别
- Django的restful api自动生成工具django-rest-swagger介绍
- 【BZOJ1050】[HAOI2006]旅行comf 并查集
热门文章
- proto3 协议指引
- when I was installing github for windows ,some errors occurred !
- 字节跳动-前端面试题 Multi Promise Order
- React Native &; Security
- 视屏剪辑软件 &; free video editor
- Azure 计费 &; 成本管理 &; 取消 Azure 订阅
- robots.txt
- ts 在Function上创建静态属性和方法
- 「NGK每日快讯」2021.2.3日NGK公链第92期官方快讯!
- Power Query 导入多源数据