1.静态语言:编译型语言 强类型(变量)
事先转换成可执行格式 也就是先编译在执行
比如 C++、C、 java C#

动态语言:解释性语言 弱类型
边解释边执行
比如PHP shell python perl
2.变量类型:
事先确定数据的库存格式和长度
字符
数值:整型 浮点型
单引号是强引用 不做变量替换的
双引号是弱引用 内部的变量会替换
反引号( ``或是$(命令) )表示引用命令的执行结果
a="ab h"
echo ${#a}
4
上边两条命令会显示变量的长度(包括空格)

3 bash变量类型
环境变量:echo $PATH
本地变量:
位置变量:$1、$2、$3、$4、$5
特殊变量:$? 这代表上一个命令的执行状态返回值。
一个程序执可能有两类返回值:
<1>程序执行结果
<2>程序状态返回代码(0-255)
0:正确执行 1-255:错误执行1、2、127系统预留。
用法:在一个命令执行完之后用echo $?命令 如果显示0说明当前的命令执行成功
如果显示2说明是权限拒绝
如果显示1-125说明运行失败
如果显示127为找到运行的命令

4.撤销变量: unset 变量名

5.查看当前shell中变量: 用set命令

6.查看当前shell中的环境变量:<1>printenv <2> env <3>export<4>set(它能列出全局和非全局的变量) 都可以

7.特殊变量:$#:参数的个数 $*:表示参数的所有内容。(将命令行所有的参数视为单个字符串。等 同于“$1$2$3”)
$@:表示参数的所有内容。(将命令行所有的参数视为单独的字符串。 等同于“$1”“$2”“$3”,这时将参数传递给其他程序的最好方 式,因为他会保留所有内嵌在每个参数里的任何空格)用的时候 要加双引号"$@".
set -- 参数1 参数2 参数3这个可以模拟出位置参数
例子:
set -- 参数1 参数2 参数3这个可以模拟出位置参数
for i in "$@" ; do
echo $i
done

8.全局变量的文件在:/etc/profile. 修改完之后又两种办法生效:<1>用. /etc/profile <2> source /etc/profile

9.设置全局变量
export 变量名称=变量值 他可已将这个变量变成全局变量
declare -x 也可以
declare -i 变量=值 //变量默认的为字符串,想要让一个变量为整型可以声明,这表是将一个变量声明为整型

在/etc/profile中尽量要遵循这种标准的格式

例子:系统自带的环境变量
echo $HOSTTYPE 查看系统是多少位的操作系统
echo $PATH 查看当前的环境变量
echo $SHELL 查看系统默认使用的shell
cat /etc/shells 查看系统支持哪些shell
echo $UID 查看当前用户的UID
echo $HISTSIZE
chsh 用户名 可以改变用户的shell平台。

10.局部变量赋值
<1>变量名=变量值 例子:a=1

<2>read 命令(可以与用户产生交互,就是可以用这个命令写一段提示语句)

格式:read 变量1 变量2 //可以是1个或是多个变量然后输入变量值
read -p “提示语” 变量名 例子:read -p “请输入数字:” a
read -n 表示不换行
read -t 数值 表示等待超时间,就是等待用户输入的时间
11.cat << END END表示文档结束标记.它写成什么都行,只要结尾一致就行
用户手动输入内容
END
它可以等待用户输入内容

cat << END > 文件名
用户手动输入内容
END
//用户手动输入的内容输入到文件里

Shelll1-基础入门之变量的更多相关文章

  1. (大数据工程师学习路径)第一步 Linux 基础入门----环境变量与文件查找

    环境变量与文件查找 本节介绍环境变量的作用与用法,及几种搜索文件的方法.学会这些技巧高效地使用 Linux. 一.环境变量 1.变量 要解释环境变量,得先明白变量是什么,准确的说应该是 Shell 变 ...

  2. Linux基础入门-环境变量与文件查找

    一.环境变量: Shell中的变量也有不同的数据类型,不用专门指定类型名,可以参与运算,有作用域限制. declare tmp 创建一个变量 可以不用专门声明,可以即用即创建 tmp=shiyanlo ...

  3. python基础入门之一 —— 变量与运算符

    1.标识符 由数字,字母,下划线组成 不能由数字开头 不能使用内置关键字 严格区分大小 2.数据类型 数值:int (整型) float(浮点型) 布尔型:True(真) False(假) str ( ...

  4. 【JAVA零基础入门系列】Day4 变量与常量

    这一篇主要讲解Java中的变量,什么是变量,变量的作用以及如何声明,使用变量. 那么什么是变量?对于初学者而言,可以将变量理解为盒子,这些盒子可以用来存放数据,不同类型的数据需要放在对应类型的盒子里. ...

  5. 020 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 14 变量与常量 知识总结

    020 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 14 变量与常量 知识总结 本文知识点:变量与常量 知识总结 Java中的标识符 Java中的关键字 目前常 ...

  6. 019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例

    019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例 本文知识点:Java中的数据类型转换案例 学习视频有误,导致没法写文,文章内容 ...

  7. 018 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 12 数据类型转换的基本概念

    018 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 12 数据类型转换的基本概念 本文知识点:Java中的数据类型转换 类型转换 类型转换分类 2类,分别是: ...

  8. 017 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 11 变量综合案例

    017 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 11 变量综合案例 本文知识点:变量 相同类型的变量可以一次同时定义多个 例:可以一行代码同时定义2个变量x ...

  9. 016 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 10 布尔类型和字符串的字面值

    016 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 10 布尔类型和字符串的字面值 本文知识点:字面值 关于字面值的概念,需要注意:很多地方,我们可能就把字面值 ...

  10. 015 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 09 Unicode编码

    015 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 09 Unicode编码 本文知识点:Unicode编码以及字符如何表示? ASCII码是美国提出的标准信息 ...

随机推荐

  1. proxysql+MHA+半同步复制

    先配置成主从同步 先在各节点安装服务 [root@inotify ~]# yum install mariadb-server -y 编辑主节点的配置文件,并启动 [root@centos7 ~]# ...

  2. 基于jar的Spring Boot工程

    一.Spring Boot简介 Spring Boot是由Pivotal[ˈpɪvətl]团队(一家做大数据的公司)提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架 ...

  3. 【Java】【设计模式】单例设计模式

    思想: 为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象 为了让其他程序可以访问到该类对象,只好在本类中自定义一个对象 为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式 代码体 ...

  4. Mycat的事务异常:Caused by: java.sql.SQLException: Transaction error, need to rollback.Distributed transaction is disabled!

    工作中踩到的一个坑 ,一个报错,导致整个服务不能用.工程部署四个节点,请求是按轮询机制分发的,所以请求四次报错,整个系统瘫痪.记录下 . 项目环境:spring +Mybaties +mycat +D ...

  5. 剖析虚幻渲染体系(13)- RHI补充篇:现代图形API之奥义与指南

    目录 13.1 本篇概述 13.1.1 本篇内容 13.1.2 概念总览 13.1.3 现代图形API特点 13.2 设备上下文 13.2.1 启动流程 13.2.2 Device 13.2.3 Sw ...

  6. 编译工具grdle部署

    目录 一.简介 二.部署 三.测试 一.简介 Gradle 是以 Groovy 语言为基础,面向Java应用为主.基于DSL(领域特定语言)语法的自动化构建工具.在github上,gradle项目很多 ...

  7. [BSidesCF 2019]Runit(细心)

    这道题目并不难,甚至很简单,通过这个文章提醒自己一定要细心 例行检查我就不放了 首先程序开启了nx这个保护,但是首先buf却鲜卑mmap映射了 然后程序又调用了buf 所以这道题直接上传shellco ...

  8. Qt Creator 源码学习笔记04,多插件实现原理分析

    阅读本文大概需要 8 分钟 插件听上去很高大上,实际上就是一个个动态库,动态库在不同平台下后缀名不一样,比如在 Windows下以.dll结尾,Linux 下以.so结尾 开发插件其实就是开发一个动态 ...

  9. 系统丢包net.netfilter.nf_conntrack_max 超限查看

    sysctl  net.netfilter.nf_conntrack_max  查看限制 sysctl net.netfilter.nf_conntrack_count 查看当前是否超限 echo n ...

  10. Swagger请求报错:TypeError: Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body.

    TypeError: Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body. 如下图 ...