批处理 读取文件内容到变量(批处理读取文件名变量)变量就是程序设计语言中的一个可以变化的量 当然 可以变化的是变量的值 几乎所有的程序设计语言中都有定义变量 并且其涵义也大同小异 从本质上讲 变量就是在程序中保存用户数据的一块内存空间 而变量名就是这块内存空间的地址 在程序的执行过程中 保存数据的内存空间的内容可能会不断地发生变化
大家好,我是讯享网,很高兴认识大家。
变量就是程序设计语言中的一个可以变化的量,当然,可以变化的是变量的值。几乎所有的程序设计语言中都有定义变量,并且其涵义也大同小异。从本质上讲,变量就是在程序中保存用户数据的一块内存空间,而变量名就是这块内存空间的地址。在程序的执行过程中,保存数据的内存空间的内容可能会不断地发生变化,但是,代表内存地址的变量名却保持不变。
- 可以使用数字,字母,和下划线给变量命名
- 不能用数字开头
- 如果给同一个变量赋值多次,最后一次赋值会覆盖之前的值
合法的变量名:name NMAE name1 name_1 Name_1
不合法的变量名:1name name*1 name_1%
查看单个变量的值:
- echo $PATH
- echo ${PATH}
- printf "$PATH "
- printf "${PATH} "
注意:$,,反单引号`,单引号,双引号
$:会将$符号后面的字符识别的成一个变量,引用变量里面的值;
:会将所有特殊字符转义,会让特殊字符失去原有的含义;
反单引号:会将反单引号里面的内容当成一个命令来执行;
单引号:会让所有处于单引号里面的特殊字符失效;
双引号:会让所有处于双引号里面的特殊字符失效,除了$,反单引号,在双引号里面保留自己的 特殊含义。
查看多个变量的值:
- set:查看所有的变量和函数
- declare:查看所有的变量和函数
- env:显示所有的全局变量
在命令行中定义:退出当前进程后该变量就失效,其他终端上无法使用该变量
在文件中定义:永久生效

讯享网
当前用户生效的文件 :~/.bashrc 和 ~/.bash_profile
所有用户生效的文件: /etc/bashrc , /etc/profile , /etc/profile.d/*.sh
(1)局部变量(普通变量):只在某个特定范围生效的变量,比如只能在当前进程中使用的变量,只能 在函数中使用的变量。 在命令行设置:在当前进程生效 在脚本文件中设置:在脚本文件中生效 在函数中定义普通变量: local var="value" ,只在当前函数中生效 在用户登录时加载的文件中设置:在脚本文件中无法使用
(2)全局变量(环境变量):可以在创建他们的shell及其派生出来的子进程中使用(su 切换用户的时 候会读取新的环境变量)。
自定义环境变量和bash内置的环境变量。
export var 或 export var="value"
declare -x var="value" , declare +x var 可取消环境变量
shell程序在运行时,会接受一组变量来确定登录用户名、命令路径、终端类型、登录目录等等,这 些变量就是环境变量。shell内置的环境变量是所有的shell程序都可以使用的变量,环境变量会影 响所有的脚本的执行结果。
很多情况下,shell脚本需要接受用户的输入,根据用户的输入来执行不同的操作。 从命令行传递给shell脚本的参数又称为叫做位置参数,shell脚本会根据参数的位置使用不同的位置参数 变量读取他们的值
讯享网
运算符 说明 +、-、*、/、% 求和、差、乘积、商、余数 幂运算 +=、-=、 *=、/=、%= 例a+=1相当于a=a+1 ++variable、- -variable 先将变量variable的值加1,然后再赋给variable; 先将变量variable的值减1, 然后再赋给variable variable++、 variable– 先使用variable的值,然后再将该变量的值加1; 先使用variable的值,然后再 将该变量的值减1 位运算符、 >> 位运算通常出现在整数间,它针对的不是整个整数,而是其二进制表示形式中的 某个或者某些位(bit)。例如,2>>1是将二进制形式的2,即10,左移1位,从 而变成100,即4。 左移,4,将4左移2位,结果为16; 右移,8>>2,将8 右移两位,结果为2 &、|、~、^ 按位与,8&4,将8和4进行按位与运算,结果为0; 按位或,8|4,将8和4进行 按位或运算,结果为12; 按位非,~8,将8进行按位非运算,结果为-9(一个字 符占一个字节,即8个二进制位,最高位为1时为负数); 按位异或(a异或b, a、b值不同结果为1,相同结果为0),10^6,将10和6进行按二进制位异或运 算,结果为12。 <<=、>>= 将变量的值左移指定位数之后重新赋给该变量,x,将x的值左移3位,重新 赋给变量x; 将变量的值右移指定位数之后重新赋给该变量,x>>=4,将变量x的 值右移4位后重新赋给变量x。 &=、|=、^= 将变量的值与指定的数值按位与之后重新赋给该变量,x&=8,将变量x的值与8 按位与运算之后重新赋给变量x; 将变量的值与指定的数值按位或之后重新赋给 该变量,x|=7,将变量x的值与7执行按位或运算之后重新赋给变量x; 将变量的 值与指定的数值按位异或之后重新赋给该变量,x^=9,将变量x的值与9执行按 位异或运算之后重新赋给变量x。
运算操作符与运算命令 意义 说明
\((())</td><td>用于整数运 算的常用运算符</td><td>在(())中使用变量时可以去掉变量前的\)符号 let 用于整数运算 使用let命令可以执行一个或者多个算术表达式,其中的变量名毋需使 用
\(符号</td></tr><tr><td> <p>expr</p> </td><td>可用于整数运算,但还有很多其他额外的功能</td><td>使用expr时,运算符及用于计算的数字左右都至少有一个空格,否则 会报错;使用乘号时,必须使用反斜线屏蔽其特定含义;使用expr做 计算,将一个未知的变量和一个已知的整数相加,看返回码是否为 0,如果为0就认为做加法的变量为整数,否则就不是整数。</td></tr><tr><td>bc</td><td>linux下的一 个计算器程 序(适合整 数及小数运 算)</td><td>[root@node13 test9]# echo `seq -s "+" 10` = `seq -s "+" 10 | bc ` seq是生成数字序列,-s是指定数字序列之间的分隔符</td></tr><tr><td>\)[] 用于整数运算 awk awk既可以 用于整数运 算,也可以 用于小数运 算 declare 定义变量值 和属性,-i 参数可以用 于定义整形 变量,做运 算
表达式 说明
\({parameter}</td><td>返回变量的内容</td></tr><tr><td>\){#parameter} 返回变量内容的长度(按字符)
\({parameter:offset}</td><td>在变量\){parameter}中,从位置offset之后开始提取子串到结 尾
\({parameter:offset:length}</td><td>在变量\){parameter}中,从位置offset之后开始提取长度为 length的子串
\({parameter#word}</td><td>从变量\){parameter}开头开始删除最短匹配的word子串
\({parameterword}</td><td>从变量\){parameter}开头开始删除最长匹配的word子串
\({parameter%word}</p> </td><td>从变量\){parameter}结尾开始删除最短匹配的word子串
\({parameter%%word}</td><td>从变量\){parameter}结尾开始删除最长匹配的word子串
\({parameter/pattern/string}</td><td>使用string代替第一个匹配的pattern</td></tr><tr><td>\){parameter//pattern/string} 使用string代替所有匹配的pattern
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/162368.html