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上,然后把心得体会记录一下发布再博 ...
随机推荐
- mybatis(一)常见ORM框架及JDBC操作工具类
转载:https://www.cnblogs.com/wuzhenzhao/p/11075569.html 在Java 程序里面去连接数据库,最原始的办法是使用JDBC 的API.我们先来回顾一下 ...
- 一分钟搞懂JavaScript中的JSON对象
JSON(JavaScript Object Notation)是表示值和对象的通用格式. JavaScript 提供了如下方法: JSON.stringify 将对象转换为 JSON. JSON.p ...
- ES6 进制字面量 All In One
ES6 进制字面量 All In One 二进制 & 八进制 & 字面量 https://developer.mozilla.org/en-US/docs/Web/JavaScript ...
- HTML5 download 执行条件
HTML5 download 执行条件 同一个域名下的资源 http only 绝对路径/相对路径 都可以 demo https://cdn.xgqfrms.xyz/ https://cdn.xgqf ...
- API 授权 All In One
API 授权 All In One 身份验证 授权类型 身份验证类型 继承认证 没有认证 API密钥 不记名令牌 基本认证 摘要授权 OAuth 1.0 OAuth 2.0 授权码 隐含的 密码凭证 ...
- codepen iframe theme id
codepen iframe theme id iframe css theme demos See the Pen css margin collapsing (1. 相邻兄弟元素) by xgqf ...
- LeetCode & linked list bug
LeetCode & linked list bug add-two-numbers shit test /** * Definition for singly-linked list. * ...
- js in depth: arrow function & prototype & this & constructor
js in depth: arrow function & prototype & this & constructor https://developer.mozilla.o ...
- HTTP 协议的前世今生
尽人事,听天命.博主东南大学研究生在读,热爱健身和篮球,正在为两年后的秋招准备中,乐于分享技术相关的所见所得,关注公众号 @ 飞天小牛肉,第一时间获取文章更新,成长的路上我们一起进步 本文已收录于 C ...
- Ajax的基本用法
1.介绍 2.基本用法 2.1原生写法 $.ajax({ url: url, //是否是异步请求,默认是 // async: false, //请求方式,默认是get //type:'get', // ...