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
Linux入门视频笔记二(Shell)的更多相关文章
- Linux入门视频笔记三(常用工具集)
一.全局变量(Linux中的全局变量指在整个系统中都能用的变量) 1.USER:当前登录系统的用户的用户名 2.HOME:当前用户的主目录 cd $HOME 或 cd ~可以进入用户主目录 3.PAT ...
- Linux入门视频笔记一(基本命令)
一.简单命令 1.date:当前时间 2.cal:当前日期(日历格式) ①cal 2019:2019年全年日历 ②cal 1 2019:2019年1月份 二.Linux文件结构 1.根目录:root( ...
- Linux入门视频笔记四(vim入门)
一.vim的基本介绍(纯命令模式编辑器) 1.vim的两种模式:命令模式(不能输入任何东西).编辑模式(按i进入编辑模式) 2.ESC:从编辑模式退出到命令模式 3.保存: ①:wq code.c(如 ...
- Linux内核学习笔记二——进程
Linux内核学习笔记二——进程 一 进程与线程 进程就是处于执行期的程序,包含了独立地址空间,多个执行线程等资源. 线程是进程中活动的对象,每个线程都拥有独立的程序计数器.进程栈和一组进程寄存器 ...
- Linux入门视频
为了方便新手学习Linux,本人专门录制了以下Linux初级视频方便学习,本系列多媒体教程已完成的博文: 轻松学习Linux之入门篇 http://chenguang.blog.51cto.com/3 ...
- Linux入门篇(二)——文件
这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不 ...
- Linux 入门记录:二十、Linux 包管理工具 YUM
一.YUM(Yellowdog Updater, Modified) 1. YUM 简介 RPM 软件包形式管理软件虽然方便,但是需要手动解决软件包的依赖问题.很多时候安装一个软件首先需要安装 1 个 ...
- linux初级学习笔记二:linux操作系统及常用命令,文件的创建与删除和命名规则,命令行展开以及linux中部分目录的作用!(视频序号:02_3)
本节学习的命令:tree,mkdir,rmdir,touch,stat,rm 本节学习的技能:Linux中主要的目录作用以及特殊的目录文件: 文件的命名规则,命令行展开: 文件的创建与删除: Linu ...
- 一个.NET Core开发者的Linux入门学习笔记
用.NET Core开发也有一段时间了,但是由于工作原因一直都是在Windows系统上进行的开发,一直想学习Linux然后把.NET Core开发的程序跑在Linux上,然后把心得体会记录一下发布再博 ...
随机推荐
- C++ 0LL
C++ 0LL C plus plus L / l means long LL === long long int countDigitOne(int n) { int countr = 0; for ...
- expo-cli & React Native
expo-cli https://reactnative.dev/docs/environment-setup You will only need a recent version of Node. ...
- rem & 16px & 62.5%
rem & 16px & 62.5% 浏览器的默认字体大小都是16px 兼容性:IE9+,Firefox.Chrome.Safari.Opera 的主流版本都支持了rem 对不支持的浏 ...
- 行业动态 | Apache Pulsar 对现代数据堆栈至关重要的四个原因
与 Kafka 相比,Pulsar 的架构使它在跨地域复制.扩展.多租户和队列等方面具有重要的优势. 1 月 27 日,DataStax 宣布收购Kesque(Pulsar 即服务),加入到了 P ...
- [转]关于特征点法、直接法、光流法slam的对比
转载网址:https://blog.csdn.net/weixin_38203573/article/details/79787499 特征点法: 通过特征点匹配来跟踪点,计算几何关系得到R,t,BA ...
- 经典面试题:在浏览器地址栏输入一个 URL 后回车,背后发生了什么
尽人事,听天命.博主东南大学硕士在读,热爱健身和篮球,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 CS-Wiki(Gitee 官 ...
- java自学第3期——继承、多态、接口、抽象类、final关键字、权限修饰符、内部类
一.继承: 关键字extends /* 定义一个父类:人类 定义父类格式:public class 父类名称{ } 定义子类格式:public class 子类名称 extends 父类名称{ } * ...
- JDBC 连接Oracle数据库 各个对象的理解
JDBC: 1. **代码实现:(连接oracle数据库) 1.导入驱动jar包 2.注册驱动 Class.forName("oracle.jdbc.driv ...
- Django框架-cookie和session以及中间件
目录 一.cookie 和 session 1.为什么会有这些技术 2. cookie 2.1 Django如何设置cookie 2.2 Django如何获取cookie 2.3 Django如何设置 ...
- gojs插件使用教程
目录 一.简介 二.简单使用 三.重要概念 1.TextBlock创建文本 2.Shape图形 3.Node节点(文本与图形结合) 4.Link箭头 四.数据绑定(前后端交互数据渲染) 五.去除水印 ...