关于变量的知识都在这里了,不看后悔终生!

前两天有一个朋友问了我4个问题,如下:

1.什么是变量?
2.变量有哪些分类?
3.环境变量是什么?
4.普通变量是什么?
5.写好变量的要求和标准有什么?

由于他忘性比较大,所以我简单整理做成了一篇博客,让他每天早晚看一遍,ready go!

#1.什么是变量?

简而言之就像我们小学学过的方程式,比如:x=1+1
x就是变量名,=就是赋值符号,1+1就是内容,这就是一个简单的变量。

#2.变量的分类
变量分为4类:环境变量和普通变量,全局变量和局部变量
开个玩笑,其实

变量分为两类:环境变量(亦称全局变量) 和 普通变量(局部变量)
-环境变量可以在任意环境,任意用户使用,你可以理解成全局的变量。
-普通变量即是不支持任意环境任意用户使用的,一般它是在shell脚本里,函数中,循环里等定义的,只能由定义者或者当个环境里使用。
环境变量和全局变量 可以理解成父shell和子shell的关系,上篇文章有讲。

#3.环境变量是什么?

环境变量有自定义环境变量(用户自己设置的)和bash内置(也就是出厂自带开发者写的)的。
环境变量一般是用export内置命令导出的变量,用于定义Shell的运行环境,保证Shell命令的正确执行。Shell通过环境变量来确定登录用户名、命令路径、终端类型、登录目录等,所有的环境变量都是系统全局变量,可用于所有子进程中,这包括编辑器、Shell脚本和各类应用。
用户通过设置环境变量,可以来更好的运行进程。

-怎么显示环境变量?
echo \$PATH
env
set等

-怎么设置环境变量?
比如\$PS1 、\$PATH \$UID 等等就是系统自带的,具有一定意义
通过命令export 定义:
export test=a
通过文件写入在source该文件,比如:
echo ‘test=b’ >> /etc/profile
source /etc/profile

怎么取消环境变量?
unset test或者在环境变量文件里删除在source

环境变量的配置文件都有哪些?
环境变量的文件:
全局文件
/etc/profile 1
/etc/bashrc 2
用户环境变量文件
~/.bashrc 3
~/.bash_profile 4
上面的数字顺序也是优先级

#4.普通变量是什么?

普通变量即局部变量
当前用户或者脚本中生效,离开当前用户或者脚本就会失效。

-变量名:
规则:字母、数字、下划线,3者组合,以字母开头。
要求:见名知意。
1.TestOne=test
2.test_one=test
3.testOne=test
-变量内容
a.字符串:
变量名=test #<==不加引号。 #解析变量或者命令,然后输出,纯数字选择不加引号。
变量名=’test’ #<==加单引号。 #所见即所得
变量名=”test” #<==加双引号。 #解析变量或者命令,然后输出,字符串默认选择双引号,可以把要定义的内容作为一个整体。
b.命令变量
变量名=`pwd`
变量名=$(pwd)

#5.写好变量的要求和标准有什么?

1.变量名命名规范,按照规则来
2.变量内容根据内容规则需要进行选择加不加符号,以及加什么符号
3.赋值符号写正确,符号两边不需要空格
4.输出变量可用echo,倘若需要加其他内容需要给加{}
5.一切按照标准来写,初学者最好形成习惯,为以后的代码整洁之道添砖加瓦

原文地址:https://blog.51cto.com/14573101/2446388

时间: 2024-10-06 21:33:44

关于变量的知识都在这里了,不看后悔终生!的相关文章

salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句

salesforce如果简单的说可以大概分成两个部分:Apex,VisualForce Page. 其中Apex语言和java很多的语法类似,今天总结的是一些简单的Apex的变量等知识. 有如下几种常用的基本变量Integer,String,Decimal,Double,Long,Boolean,ID. 集合常用的对象:List<T>,Set<T>,Map<T>. 时间日期常用对象:Datetime,Time,Date. 其他:Object,sObject(与数据库相关

C++笔记十三:C++对C的扩展——C++中所有变量和函数都必须有类型

C++中所有的变量和函数都必须有类型: C语言中的默认类型在C++中是不合法的! 在C语言里面可以写一些很奇怪的函数!并且可以运行成功! f(i)函数的返回值是什么类型?参数又是什么类型?我们赋值10居然可以打印出来! g()函数可以接受多少个参数?我们没有参数,但是函数调用时我们可以加上参数,并且运行成功! f(i) { printf("i=%d\n",i); } g() { return 5; } int main() { f(10); printf("g()=%d\n&

变量命名大部分都是 fuck,shit ,这程序员老哥是被命名逼疯,还是戾气太重?

最近一个工作4年的老同事离职了,领导让我接手维护他的功能并把代码交给我. 我拿到代码一看,变量命名大部分都是 fuck,shit 之类的粗话,甚至 for 循环用于 break 的 label 也命名为 FUCK_FOREACH,JUnit 测试导出的文件也带有 Fuck 字样,而且通篇没有注释,应该就剩数据库的表命名没带粗话了... 我这里没有 code review,貌似领导也不知道,不知道那个老同事经历了什么,我的天!!! 你们会在代码里带粗话吗? 「 被命名逼疯的节奏 」 说真的,看到这

Android性能优化:阿里、腾讯等关于内存泄露的知识都在这里了!

建议收藏,不然就找不到了!!! 前言 在 Android 中,内存泄露的现象十分常见:而内存泄露导致的后果会使得应用Crash本文 全面介绍了内存泄露的本质.原因 & 解决方案,最终提供一些常见的内存泄露分析工具,希望你们会喜欢. 目录 1. 简介 即 ML (Memory Leak)指 程序在申请内存后,当该内存不需再使用 但 却无法被释放 & 归还给 程序的现象 2. 对应用程序的影响 容易使得应用程序发生内存溢出,即 OOM内存溢出 简介: 3. 发生内存泄露的本质原因 具体描述 特

Block变量的的用法,使你的程序看起来清晰明了!

<span style="font-size:24px;">为什么要使用block变量呢? 因为当我们的程序比较繁杂的时候,我们在一个函数中要调用一个函数,还需要在外边来定义,实现,很不方便,但是有了block变量我们就可以在一个函数的内部来定义一个block变量,相当于又在函数的内部来定义了一个函数. int (^max)(int x,int y) = ^(int x,int y)//求两个数的最大值 { return x > y ? x :y; }; NSLog(

在知乎上看到 Web Socket这篇文章讲得确实挺好,从头看到尾都非常形象生动,一口气看完,没有半点模糊,非常不错

https://www.zhihu.com/question/20215561/answer/40316953 在知乎上看到这篇文章讲得确实挺好,从头看到尾都非常形象生动,一口气看完,没有半点模糊,非常不错,所以推荐给大家,非常值得一读. 作者:Ovear链接:https://www.zhihu.com/question/20215561/answer/40316953来源:知乎著作权归作者所有,转载请联系作者获得授权. 一.WebSocket是HTML5出的东西(协议),也就是说HTTP协议没

ES6 介绍 及 变量基础知识

一.ES6 简介 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了.它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言 ES6 是 5.1 版以后的 JavaScript 的下一代标准,涵盖了 ES2015.ES2016.ES2017 等等:而 ES2015 则是正式名称,特指该年发布的正式版本的语言标准 二.ES6 转码 Node 是 JavaScript 的服务器运行

DOS批处理——变量小知识

DOS中对变量.命令和命令行参数是不区分大小写的 1.接受输入变量 set  /p  变量名=提示信息 例如:     @echo off     set /p name=请输入姓名:     echo your name is %name%      pause 2.使用脚本的调用参数 echo %<n> 其中,n的取值范围为0-9和*,%0为文件名,%1-%9为参数,每次调用脚本最多支持9个参数,%*表示所有传入的参数,即%1~%9,并且包括其中的空白符. 注:调用参数%0和%1是只读的,

Python变量基础知识

变量定义 标识符的第一个字符必须是字母或下划线: 标识符其余部分可以使字母.数字.下划线: 大小写敏感. 变量名应有意义,例如my_girl_name. 变量类型 整型:布尔型(True/False,常用于循环中的开关).整型(长度与内存相关,溢出会自动转为长整型).长整型: 非整型:双精度浮点型.复数.decimal(非内建类型): 序列类型:字符串(str).元组(tuple).列表(list): 映像类型:字典(dict): 集合类型:可变集合(set).不可变集合(frozenset).