变量

set、env、export差分

南楼画角 提交于 2020-04-04 05:36:56
set: 显示当前shell变量,用户变量包含当前用户 env:显示用户变量 export: 显示当前导出成用户变量的shell变量 举例来说: root@kali:~# aaa=bbb 设置一个变量,此时设置的变量为shell变量 root@kali:~# echo $aaa 显示刚刚设置的变量 bbb root@kali:~# set|grep aaa 显示并搜索当前的shell变量。找到刚刚设置的aaa变量 aaa=bbb root@kali:~# env |grep aaa 显示并搜索当前登录用户的变量,由于aaa是shell变量。所以搜索不到 root@kali:~# export aaa 将aaa这个shell变量导出成用户变量 root@kali:~# env |grep aaa 这个时候搜索用户变量就能够搜索出aaa aaa=bbb root@kali:~# 每一个shell都有自己特有的变量,这和用户变量是不同的。当前用户变量和你用什么shell无关。无论你用什么shell都是存在的。比方HOME,SHELL等这些变量,但shell也有自己的变量,不同的shell是不同的,比方BASH_ARGC。 BASH等。这些变量仅仅有set才会显示,是bash特有的。export不加參数的时候,显示哪些变量被导出成了用户变量,由于一个shell自己的变量能够通过export

linux set,env和export

自作多情 提交于 2020-04-04 05:36:23
set,env和export这三个命令都可以用来显示shell变量 set 显示当前shell的变量,包括当前用户的变量 env 显示当前用户的变量 export 显示当前导出成用户变量的shell变量 每个shell都有自己特有的变量,这和用户变量是不同的。当前用户变量和你用什么shell无 关,不管你用什么shell都是存在的。比如HOME,SHELL等这些变量,但shell自己的变量,不同的shell是不同的,比如 BASH_ARGC, BASH等,这些变量只有set才会显示,是bash特有的。export不加参数的时候,显示哪些变量被导出成了用户变量,因为一个shell自己的变 量可以通过export “导出”变成一个用户变量。 [root@localhost root]# a=test [root@localhost root]# echo $a test [root@localhost root]# set |grep a a=test [root@localhost root]# env |grep a [root@localhost root]# export a [root@localhost root]# env |grep a a=test 来源: https://www.cnblogs.com/guochuanrui/p/5747247.html

let引起的暂时性死区

こ雲淡風輕ζ 提交于 2020-04-04 04:14:00
let声明的变量适用于块级作用域,没有变量提升。 暂时性死区(temporal dead zone) let num = 10; if (true) { console.log(num); } 输出:10 let num = 10; if (true) { let num = 20; console.log(num); } 输出:20 let num = 10; if (true) { var num = 20; console.log(num); } 控制台会报语法错误,Uncaught SyntaxError: Identifier 'num' has already been declared,因为var会变量提升。 let num = 10; if (true) { console.log(num); let num = 20; } 报引用错误:Uncaught ReferenceError: Cannot access 'num' before initialization;在使用变量时,会先在本级作用域查找,没有再向上级作用域查找,那这里为什么会说没有初始化呢? 根据 segmentfault 上 Chen 的 博文 : 当程序的控制流程在新的作用域(module function 或 block 作用域)进行实例化时,在此作用域中用let

关于字符串的练习

ε祈祈猫儿з 提交于 2020-04-04 01:53:32
  今天过于繁忙,还没继续在往下一个内容学习,不过也好,做做练习巩固下之前学习的 通过练习发现自己掌握的还不是很巩固 1、执行 Python 脚本的两种方式 Cmd 和双击 2、简述位、字节的关系 1位 =8字节 3、简述 ascii、unicode、utf-­‐8、gbk 的关系 4、请写出 “李杰” 分别用 utf-­‐8 和 gbk 编码所占的位数 3、Pyhton 单行注释和多行注释分别用什么? 单行用# 多行用""" 4、声明变量注意事项有那些? 只可用数字、字母、下划线 不可数字在最前面 不可用关键词 简短有描述性 尽量用小写 尽量避免小写L(l)大写o(O) 7、如有一下变量 n1 = 5,请使用 int 的提供的方法,得到该变量最少可以用多少个二进制位表示? 8、布尔值分别有什么? Ture False 9、阅读代码,请写出执行结果 a = "alex" b = a .capitalize() print(a) print(b) 请写出输出结果: alex Alex 10、写代码,有如下变量,请按照要求实现每个功能 name = " aleX" a. 移除 name 变量对应的值两边的空格,并输入移除后的内容 b. 判断 name 变量对应的值是否以 "al" 开头,并输出结果 c. 判断 name 变量对应的值是否以 "X" 结尾,并输出结果 d. 将 name

delphi操作文本文件的方法简介

风流意气都作罢 提交于 2020-04-04 00:46:31
delphi操作文本文件的方法简介 减小字体 增大字体 作者佚名来源不详发布时间2008-5-31 10:31:16发布人xuedelphi 1 文件类型和标准过程  Delphi同Object Pascal一样支持三种文件类型,即:文本文件、记录文件、无类型文件。 1.1文本文件  文本文件类型的变量用如下方法声明: var TextFileVar: Text ;  文本文件是以行为单位进行读、写操作的。由于每一行长度不一定相同,不能计算出给定行在文件中的确切位置,因而只能顺序地读写。而且文本文件只能单独为读或写而打开,在一个打开的文本文件上同时进行读、写操作是不允许的。  1.1.1 文本文件的打开、关闭  文本文件的打开需要两个步骤:(1). 文件变量与文件名关联;(2). 初始化读写。 联文件变量与文件名调用AssignFile标准过程:  AssignFile ( TextFileVar , FileName ) ;  FileName 既可以是全路径名,也可以仅是文件名。对于后者系统将在当前目录下查找。 AssignFile是Delphi新提供的一个函数,其功能等价于Object Pascal中的Assign。而Assign在Delphi中更多地被用作一个方法名。 初始化读写有三种方式: 1. Reset : 为读打开文件并把文件指针移动到文件首; 2. Rewrite

一些初期笔记

蹲街弑〆低调 提交于 2020-04-03 23:57:15
0.C语言编译的步骤( Linux下 ):   ①预处理:展开头文件,或添加或替换#开头的语句中的内容,会生成一个后缀名为.i的文件。(展开头文件)   ②编译:将后缀名.i的文件翻译成汇编语言,生成一个后缀名.s的文件。(生成汇编代码)   ③汇编:将.s的文件翻译成2进制码,生成一个.o后缀名的文件。(生成目标代码)   ④链接:生成一个后缀名.elf的可执行文件。(链接库) 1. extern 关键字修饰一个变量时,只声明变量,不为该变量分配内存,因为内存中没有这个变量所以 extern 关键字修饰的变量不能在声明是赋值。 2.#开头的语句是预处理语句,无需分号结束,宏定义的数字相当于常量,不允许修改。 3. const 关键字修饰的变量为只读变量,即常量,不可以被修改。 4.在if语句中将常量放在左边更好,因为当判断条件的等式少一个‘=’时编译器会报错,这样有利于后期调试。   eg:如果我们想写的语句是: if (a== 4 ) ,但是我们少写了一个‘=’就会变成 ->     if (a= 4 ) // ①先执行赋值操作②判断a的值是否为真 ,错误很隐蔽,代码量多了很难找到这个错误     但是如果我们写成: if ( 4 ==a) ,当我们少写了一个‘=’就会变成 ->     if ( 4 =a) // ①先执行赋值操作 ,左值为常量编译不过,能有效避免这类错误发生

1.7 c之 指针

心已入冬 提交于 2020-04-03 23:28:34
指针 *P代表指针变量P所指的那个变量,也就是变量a。 为什么需要指针? 指针存在的目的就是间接访问。有了指针之后,我们访问变量a不必只通过a这个变量名来访问。而可以通过p = &a; *p = xxx这样的方式来间接访问变量a。 两个重要的运算符: &和* 指针的定和初始化 指针既然是一种变量,那么肯定也可以定义和初始化 第一种:先定义再赋值 int p; //定义指针变量p p = &a; //给p赋值 第二种:定义的同时初始化 int p = &a; //效果等同于上面的两句 使用指针的时候,*P则代表指针变量P所指向的那个变量。 int a = 23; int *p; P=&a; p = 111; 这里相当于a = 111 printf(“a = %d.\n”,a) :指针符号。指针符号在指针定义和指针操作的时候,解析方法是不同的。 int P; 定义指针变量p,这里 p含义不是代表指针变量P所指向的那个指针变量,在定义时这里的 含义告诉编译器P是一个指针。 使用指针的时候, p则代表指针变量p所指向的那个变量。 指针全程是指针变量,其实质就是c语言的一种变量。这种变量比较特殊,通常他的值会被赋值为某个变量的地址值( P = &a ),然后我们可以使用*p这样的方式间接访问p所指向的那个变量。 指针变量本质上是一个变量, 指针变量的类型属于指针类型 指针与数组的初次结合

JVM系列十(Class 文件结构).

不想你离开。 提交于 2020-04-03 19:39:33
一、Class 文件结构 JDK 的版本号已经到 14 了,相对于语言、API 以及 Java 技术体系中其他方面的变化,Class 文件结构一直处于比较稳定的状态,Class 文件的主体结构、字节码指令的语义和数量几乎没有出现过变动。 Class 文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在 Class 文件中,中间没有添加任何分隔符,这使得整个 Class 文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在。 根据 Java 虚拟机规范的规定,Class 文件格式采用一种类似于 C 语言结构体的伪结构来存储数据,这种伪结构只有两种数据类型:无符号数和表: 无符号数:以 u1、u2、u4、u8 来分别代表1个字节、2个字节、4个字节和8个字节的无符号数,无符号数可以用来描述数字、索引引用、数量值或者按照 UTF-8 编码构成字符串值。 表:由多个无符号数或者其他表作为数据项构成的复合数据类型,所有表都习惯性的以“_info” 结尾,用于描述有层次关系的复合结构的数据,整个 Class 文件本质上就是一张表。 下面是 Class 文件格式: 类型 名称 数量 描述 u4 magic 1 表示这个文件是否为一个能被虚拟机接受的 Class 文件 u2 minor_version 1 次版本号 u2 major_version 1 主版本号

Python变量类型和运算符(变量)

回眸只為那壹抹淺笑 提交于 2020-04-03 18:41:07
python 变量 Python 使用等号(=)作为赋值运算符, 注意,变量名其实就是标识符,因此在命名时,既要遵守标识符的命名规范,还要避免和 Python的内置函数重名。 强类型语言和弱类型语言 必须指定该变量所能存储的数据类型,以 C 语言为例: int a = 20 和强类型语言相对应的是弱类型语言,Python 就是典型代表之一。弱类型语言有以下 2 个特征: 变量无须声明即可直接赋值,对一个不存在的变量赋值就相当于定义了一个新变量。 变量的数据类型可以动态改变:同一个变量可以一会儿被赋值为整数值,一会儿被赋值为字符串。 python 数值类型 Python 中的数值类型主要包括整形、浮点型和复数类型。整形专门用来表示整数,即没有小数部分的数。在 Python 中,整数包括正整数、0 和负整数。 short、int、long 整形类型存储,除此之外,Python 的整型还支持 None 值(空值) [root@kube python]# py demo6.py <class 'int'> <class 'int'> <class 'int'> <class 'NoneType'> [root@kube python]# cat demo6.py a=1 b=222 c=4444444444444444444444444444444444444444444444444444

c 指针

落爺英雄遲暮 提交于 2020-04-03 15:42:23
须要注意一点,通常所说的指针实际是“指针变量”的简称,一个指针变量可以被赋予不同的指针值;而指针则是一个地址,是一个常量 可以通过下面的方式来定义一个指向变量的指针: 类型说明符 *变量名; *表示定义的是一个指针变量,变量名即为定义的指针变量名,类型说明符表示指针变量所指向变量的数据类型。 eg: int *zhizheng; 首先理解地址运算符“&"的作用。在C语言中用 , “&”加上变量名称表示变量的地址,因此&test1表示的是变量testl的地址。在程序中,有对指针进行赋值的方式: void test2(){ char test1='A',test2='D'; char *p1=&test1; char *p2; lr_output_message("p1=%c",*p1); p2=&test1; test1 = 'U'; lr_output_message("p1=%c",*p2); *p2 = 'B'; lr_output_message("p1=%c,p2=%c,test1=%c",*p1,*p2,test1); test2 = *p2; lr_output_message("test2=%c",test2); } 结果: p1=A Action.c(29): p1=U Action.c(32): p1=B,p2=B,test1=B Action.c(36):