用户变量

  1.用户变量可以是任何不超过20个字母、数字或下划线的文本字符串。用户变量区分大小写。

值时通过等号赋给用户变量。在变量、等号和值之间不能出现空格

var1=10

shell脚本会自动决定变量值的数据类型。

2.引用一个变量值时需要使用美元符,而引用变量来对其进行赋值时则不要使用美元符

value1=10
value2=$value1

 

  反引号

反引号(`)允许你将shell命令的输出赋给变量。

必须用反引号把整个命令行命令圈起来:test=‘date’

#!/bin/bash
today=`date+%y%m%d`
ls /usr/bin -al > log.$today

重定向输入和输出

1.输出重定向

重定向最基本的类型是将命令的输出发到一个文件中。(>)

command>outputfile

date>test6

如果输出文件已经存在,则重定向操作符会用新的文件数据覆盖已经存在的文件:

要想将命令的输出追加到已有文件中,可以用双大于号(>>)来追加数据:

date >> test6

2.输入重定向------》将文件的内容重定向到命令。(<)

command<inputfile
wc<test6

wc命令提供了对数据中文本的技术,默认输出3个:

1.文本的行数
2.文本的词数
3.文本的字节数

管道

command1|command2

将一个命令的输出重定向到另一个上。linux系统实际上会同时运行两个命令,在系统内部将他们连起来,在第一个命令产生输出的同时,输出会被立刻送给第二个命令。传输数据不会用到任何中间文件或缓冲区域。

expr命令

expr 5 \* 2

注意:乘号利用反斜线(转义字符)来识别容易被shell错误解释的任意字符。

在bash中,将一个数学运算结果赋给某个变量时,你可以用美元符和方括号($[operation])将数学表达式圈起来。

如:

var1=$[1+5]

注意:在使用方括号来计算公式时,不用担心shell会误解乘号或其他符号。shell知道它不是通配符,因为在括号内。

var2=$[$var1*2]

但bash只支持整数运算。

bash计算器:简称bc。允许你在命令行输入浮点表达式、解释表达式、计算并返回结果的一种编程语言。

bc
12*5.4
quit

要退出bash计算器,你必须输入quit。

浮点运算是由一个内建的称为scale的变量控制。你必须将这个值设置为结果里你想要的小数后的位数,否则你不会得到想要的结果的:

3.44/5
0
scale=4
3.44/5
.6880
quit

scale变量的默认值是0.在scale值被设置前,bash计算器输出的没有小数点后的位置。

bash计算器还能支持变量:

var1=10
var1*4
40
var2=var1/5
print var2
2
quit

一旦变量的值被定义了,你就可以在整个bash计算器会话中使用变量了。

在脚本中使用bash:

可以利用反引号来运行bc命令并将输出赋给一个变量。

var=`echo “options;expression” | bc`

第一个options允许你来设置变量,如果你需要设置不止一个变量,可以用分号来分开他们。

var1=100
var2=45
var3=`echo "scale=4;$var1 / $var2" |bc`
echo The answer for this is $var3

这个方法适合较短的运算,当较长的运算时,最好利用内联输入重定向。

var=`bc <<  EOF
options
statements
expressions
EOF
`

EOF文本字符串标识了内联重定向数据的开始和结尾。记住仍然需要反引号来将bc命令的输出赋给变量。

ar1=10.46
var2=43.67
var3=33.2
var4=71

var5=`bc << EOF
scale = 4
a1 = ($var1*$var2)
b1 = ($var3*$var4)
a1+b1
EOF
`
echo reslut is $var5

注意:在bash计算器中创建的变量只在bash计算器中有效,不能在shell脚本中使用

查看退出状态码

$?专属变量来保存上个执行的命令的退出状态码。

 date
Mon Nov  7 23:08:39 HKT 2016
 echo $?
0

按照惯例,一个成功结束的命令的退出状态码是0,如果一个命令结束时有错误,退出状态码中就会有一个正数值:

 asdfg
bash: asdfg: command not found
echo $?
127

无效命令会返回一个退出状态码127.

exit命令

时间: 2024-10-23 09:00:58

用户变量的相关文章

windows 用户变量和系统变量的区别

点击"我的电脑→属性→高级系统设置"标签的"环境变量"按钮,出现"环境变量"对话框,如果当前是以Administrator登录系统的用户,对话框的上面为Administrator的用户变量,对话框的下面为系统变量(即相当于系统中所有用户的用户变量).有的时候我们会看到在用户变量和系统变量中都存在某一个环境变量,比如path,那么path的值到底是用户变量中的值还是系统变量中的值,或者两者都不是呢?答案是两者都不是.path变量的值是用户变量中的值

Ubuntu环境变量——系统变量和用户变量

系统变量: 对所有用户有效果 /etc/profile /etc/environment 两个命令只用一个就可以,原则上是重启后修改生效,但是经过验证可以通过执行以下命令实现: source /etc/profile source /etc/environment 用户变量: 只对当前用户有效 ~/.profile ~/.bashrc 执行以下命令生效 source ~/.profile source ~/.bashrc

第23课:用户变量和变量引用

用户变量 编写批处理程序时,用户根据需要自己定义的变量称之为用户变量.用户变量类似于C语言里面的变量,仅仅在定义该变量的程序中有效. 用户变量由set命令定义,这是批处理中非常非常重要的一个操作,从而使set命令成为批处理里面使用频率最高的几个命令之一.关于set命令的使用,参考set /?,本教程也会在后面对其进行讲解. 变量引用 前面的几节课里面,我们已经看到了如何引用变量,即直接用变量名操作变量,通过"%"或"!"来获取变量的值.其中,只有在for语句里面重复

环境变量中的用户变量与系统变量的区别

在windows中,设置环境变量的时候,会看到有用户变量跟系统变量2种 那么究竟有什么区别呢? 用户变量:只针对当前用户有效 系统变量:针对整个操作系统有效 为了保证自己的修改不对别人造成影响,那么一般就是用用户变量 对于当前用户而言,设置用户变量跟系统变量大致相同,只是系统变量的路径排在用户变量之前.可能出现一种情况:如果path系统变量中包含java命令,path用户变量中也包含java命令,那么优先执行系统变量中的java命令.

windows 用户变量和系统变量的差别

点击"我的电脑→属性→高级系统设置"标签的"环境变量"button,出现"环境变量"对话框,假设当前是以Administrator登录系统的用户.对话框的上面为Administrator的用户变量,对话框的以下为系统变量(即相当于系统中全部用户的用户变量). 有的时候我们会看到在用户变量和系统变量中都存在某一个环境变量.比方path,那么path的值究竟是用户变量中的值还是系统变量中的值,或者两者都不是呢?答案是两者都不是.path变量的值是用户

【批处理学习笔记】第二十三课:用户变量和变量引用

用户变量    编写批处理程序时,用户根据需要自己定义的变量称之为用户变量.用户变量类似于C语言里面的变量,仅仅在定义该变量的程序中有效.    用户变量由set命令定义,这是批处理中非常非常重要的一个操作,从而使set命令成为批处理里面使用频率最高的几个命令之一.关于set命令的使用,参考set /?,本教程也会在后面对其进行讲解. 变量引用    前面的几节课里面,我们已经看到了如何引用变量,即直接用变量名操作变量,通过"%"或"!"来获取变量的值.其中,只有在

mysql查询语句中用户变量的使用

先上代码吧 SELECT `notice`.`id` , `notice`.`fid` , `notice`.`has_read` , `notice`.`notice_time` , `notice`.`read_time` , `f`.`fnum` , `f`.`forg` , `f`.`fdst` , `f`.`actual_parking` AS `parking` , `f`.`scheduled_deptime` , `f`.`estimated_deptime` , `f`.`ac

MySQL - 用户变量

MySQL用户变量:基于会话变量实现的,可以暂存值,并传递给同一连接里的下一条sql使用的变量,当客户端连接退出时,变量会被释放. MySQL用户变量应用场景:同一连接,未关闭情况下,帮你暂存一些计算结果. 两种方式定义用户变量: 1. "=" 如 set @a = 3 , @a: = 5 2. ":=" select常常这样使用. 总结:使用select和set设置变量的区别,set可以使用以上两种形式设置变量,而select只能使用":="的

jmeter的使用---用户变量

用户变量有以下方式: 一.外部引入:csv引入参数 二.sample传递参数:http请求的body参数 三.定义用户变量:全局变量 (1)用户定义的变量 name,和value   一对一 (2)用户参数 name,和value   一对多 如下,定义了函数,线程数大于1,就有"用户定义的变量"值不变,但是"用户参数"每次都会变 有结果如下: 原文地址:https://www.cnblogs.com/wanghongye/p/10048873.html