shell脚本基本介绍
1、编程介绍
驱动 硬件默认是不能使用的
CPU控制硬件、不同的厂家硬件设备之间需要进行指令沟通,我们需要驱动程序来进行“翻译”;
更趋近与开发的工程师,要学习“汇编语言”;而“汇编语言”被厂商所限制;
C C++的底层就是汇编语言
现在编程:
基于高级语言,以及超高级语言,更好的让程序员能够的实现编程功能
编程语言的分类:
高级语言
超高级语言需要翻译成计算机可读的语言(二进制指令)
解释型--逐行翻译执行,shell python java
bash -x filename.sh
编译型---一次编译,全部执行C语言 C++ C# java
程序=指令+数据
面向对象---侧重数据的编程语言
面向过程---侧重于指令
编程语言的执行方式:
1、顺序执行
2、循环执行for(遍历) while(循环条件) until(while相反)
3、选择执行---分支 if case
2、shell脚本语言介绍
优点:调用os(操作系统)的命令行,来实现所有功能。
缺点:没有库调用(对比Python)
shell脚本包括:1.命令 2.变量(全局变量、局部变量、本地变量、传参)3.逻辑关系
·shell的第一句话
#!/bin/bash -- 定义脚本解释器
/etc/shells -- 查看当前会话系统支持的shell程序
echo $SHELL -- 查看当前会话的shell程序
/etc/passwd -- 制定了用户默认支持的shell程序(/sbin/nologin)
shell的执行:
1、bash命令来执行脚本
-n 查看shell脚本的逻辑错误
-x 逐行显示执行的脚本程序
2、授权 chmod + x filename.sh
使用全路径执行脚本
3、变量
环境变量
局部变量 declare:定义变量类型
本地变量 local 在函数中使用
变量类型:
数值型:
1.整型 int
2.浮点型 float
3.布尔值 0 1 (真Ture 假False)
字符串:
1.普通字符及字符串
2.数组
编程语言的分类:
强类型语言--数值必须被定义,才能被处理或运算
弱类型语言--编程语言可以自动识别变量类型
(多态 一个数据具有多个属性,而最后使用的属性取决于他进行运算的数据)
传参
$? --上一条命令的执行状态 0 正确 1-255 错误
$1 $2..${10} --命令后面闯入脚本的数据,以空格为分隔符
$# --统计传参的数量
$* --表示所有传参,所有的传参以字符串形式进行传输出
$@ --表示所有传参,将所有的传参以列表的形式进行输出
定义变量的格式:
NAME=value =赋值 ==判断
declare 定义参数类型
declare -i 整数
declare -a 数组
变量命名:
1.下划线的方式指定变量名称
2.驼峰命名方式
4、test文件测试、条件判断
在脚本中,我们需要进行语句分支,需要进行test判断实现
使用格式:
1.test[option]file
2.[ 条件语句 ] !条件语句前后有空格
常见的test选项:
比较选项:
-eq =
-ne
-gt >
-ge >=
-lt <
-le <=
判断选项:
-f 判断是否为普通文件
-d 判断是否为目录文件
-L 判断是否为连接文件
-r -w -x 判断文件是否具有 读 写 执行 权限
关联选项:
-o 或
-a 与
! 非
字符判断:
= 判断字符串是否相同
!= 不等于
-z 判断字符串是否存在
-n 和-z相反
5、逻辑运算
与 -- && 两边命令都为真,结果为真
或 -- || 俩边命令一边为真。结果为真,同时为假,结果为假
非 -- !=
这个逻辑运算符,前后对接的都是单独存在的命令
[$? -eq 0] && exit 0 || exit 1
6、算数运算
let 1+1
let a =1+1
echo $a
expr 1+1
let a =1+1
echo $a
$[$1+10]
a=$[2+3]
echo $a
$(($1/$2))
a=$((3/2))
echo $a
shell脚本基本介绍的更多相关文章
- shell脚本编程基础
最近学习了shell脚本编程,感觉自己的脚本写的不太好,所以想把shell脚本相关的知识系统的整理一下,便于以后的学习和使用. 一.shell脚本基础 shell脚本是利用shell的功能 ...
- linux100day(day5)--编程原理和shell脚本
通过前面的学习,我们对于linux文件系统有了一定的了解,我们接下来会初步接触编程原理和尝试编写shell脚本来实现功能. day05--编程原理和shell脚本初步认识 编程原理 在早期编程中,因为 ...
- Linux | Shell脚本的编写
Shell 脚本的介绍 Shell脚本通过Shell终端解释器当作人与计算机硬件之间的翻译官,用户可以通过它执行各种命令,不仅有简单的,还有复杂的,比如:判断.循环.分支等这些高级编程中才有的特性.S ...
- shell脚本编程之for语句、if语句使用介绍
介绍了shell脚本编程之for语句.if语句的使用方法. 上部: 面向过程: 顺序执行 选择执行: if, case 循环执行: for, while, until 一.for语句 格式: ...
- 详细介绍Linux shell脚本基础学习
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
- shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量
7月11日任务 20.1 shell脚本介绍20.2 shell脚本结构和执行20.3 date命令用法20.4 shell脚本中的变量 20.1 shell脚本介绍 1.shell脚本语言是linu ...
- Linux shell脚本基础学习详细介绍(完整版)二
详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...
- Linux shell脚本基础学习详细介绍(完整版)一
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...
- shell脚本编程基础介绍
Linux系统——shell脚本编程基础介绍 1.什么是shell 它是一个命令解释器,在linux/unix操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种操作输出的结果 ...
- 什么是Shell?Shell脚本基础知识详细介绍
这篇文章主要介绍了什么是Shell?Shell脚本基础知识介绍,本文是一篇Shell脚本入门文章,在本文你可学到什么是Shell.有多少种Shell.一个Shell脚本代码实例,需要的朋友可以参考下 ...
随机推荐
- NSQ(8)-有赞相关改进
如何保证消息队列的高可用(HA) NSQ 本身就是一个分布式消息队列,且支持水平扩展,无单点故障,能在无中断的情况下无缝添加集群结点. nsq用到了集群去保证整个服务的高可用,但并不能保证单个topi ...
- windows 设置网卡跳跃点
查看路由表route print -4 添加永久路由表:192.168.1.1(网关)route add 0.0.0.0 mask 255.255.255.0 192.168.1.1 metric 1 ...
- NVIDIA的GPU算力Compute Capalibity
可查看官方查询地址:https://developer.nvidia.com/cuda-gpus
- atx
https://github.com/openatx/atx-agent/releases/download/0.9.4/atx-agent_0.9.4_linux_386.tar.gz
- ubuntu 逻辑卷增加磁盘
使用lv* 相关的命令 lvdisplay lvscan ACTIVE '/dev/ubuntu-vg/ubuntu-lv' [<74.00 GiB] inherit lv ...
- win10 python mysqlclient 安装问题 已解决
用习惯了Linux 忽然换到win10 超级不习惯 今天下午就一个mysqlclient 安装弄了好长时间 ,最后发现是得改名 真是想爆粗口. 下面直接进入正题: 下载地址 https:/ ...
- MySQL之校对集问题
随笔记录方便自己和同路人查阅. #------------------------------------------------我是可耻的分割线--------------------------- ...
- 移动端性能测试--CPU资源
一.背景 在很多场景下我们去使用 App,可能会碰到手机会出现发热发烫的现象.这是因为 CPU 使用率过高.CPU 过于繁忙,会使得整个系统无法响应用户,整体性能降低,用户体验变得相当差,也容易引起 ...
- FTP替代传输方案的优异性体现在哪些方面?
多年来,FTP一直是最常见的交换文件的方式,FTP-FTPS-SFTP似乎是FTP的不断迭代更新,但是究竟是技术更新导致FTP过时?还是它真的已经满足不了企业的需求了? 之前,大家选择FTP往往是因为 ...
- tomcat 2 - 默认连接器精简版
tomcat 将一个包中所有类使用的错误信息存储在 properties 文件中,每个包有一个 properties 文件.每个 properties 文件都是用 org.apache.catali ...