shell中的变量

1. 变量与变量的内容以一个等号“=”来连接

csdn1013@LAPTOP-QNFOQI5C:~$ myname=csdn1013

csdn1013@LAPTOP-QNFOQI5C:~$ echo $myname

csdn1013

csdn1013@LAPTOP-QNFOQI5C:~$

 2.等号两边不能直接 接空格符,否则会提示错误

csdn1013@LAPTOP-QNFOQI5C:~$ myname =cs1013

myname: command not found

csdn1013@LAPTOP-QNFOQI5C:~$ myname= csdn1013

csdn1013: command not found

csdn1013@LAPTOP-QNFOQI5C:~$ myname =csdn1013

myname: command not found

 

3. 变量的名称只能时英文字母和数字,但是开头不能时数字。这与大部分编程语言的规则一致

csdn1013@LAPTOP-QNFOQI5C:~$ 2myname=csdn1013

2myname=csdn1013: command not found

4.变量内容如果有空格,可以用双引号或者单引号将变量的内容结合起来,但是

  • 双引号内的特殊字符如$等,会保留原本的特性,例如:
csdn1013@LAPTOP-QNFOQI5C:~$ var="lang is $LANG"
csdn1013@LAPTOP-QNFOQI5C:~$ echo $var
lang is C.UTF-8
	
csdn1013@LAPTOP-QNFOQI5C:~$ echo $LANG
C.UTF-8

#var变量的内容中包含了空格,这是通过双引号来实现的。双引号中的$LANG, 会保留其原来的特性。

 

  • 单引号内的特殊字符就是一般的文本,不会保留特殊字符的属性
csdn1013@LAPTOP-QNFOQI5C:~$ var='lang is $LANG'

csdn1013@LAPTOP-QNFOQI5C:~$ echo $var

lang is $LANG

csdn1013@LAPTOP-QNFOQI5C:~$ echo $LANG

C.UTF-8

5. 可以用转义字符"\"将特殊符号转变成一般字符

csdn1013@LAPTOP-QNFOQI5C:~$ var="lang is \$LANG"
csdn1013@LAPTOP-QNFOQI5C:~$ echo $var
lang is $LANG
#虽然在双引号中使用了$符号,但是使用转义字符将$转义了,所以var的内容是“lang is $LANG”

 

6.如果需要将一条命令的结果直接传递给一个变量,可以使用`命令`或者$(命令)。注意前者不是单引号。例如:

csdn1013@LAPTOP-QNFOQI5C:~$ version=`uname -r`
csdn1013@LAPTOP-QNFOQI5C:~$ echo $version
4.4.0-19041-Microsoft

csdn1013@LAPTOP-QNFOQI5C:~$ version=$(uname -r)
csdn1013@LAPTOP-QNFOQI5C:~$ echo $version
4.4.0-19041-Microsoft

7. 为变量增加内容,可以用如下方式:

csdn1013@LAPTOP-QNFOQI5C:~$ echo $version
4.4.0-19041-Microsoft
csdn1013@LAPTOP-QNFOQI5C:~$ version=$version:linux
csdn1013@LAPTOP-QNFOQI5C:~$ echo $version
4.4.0-19041-Microsoft:linux

8. 如果需要在其他子进程中执行,则需要用export将该变量变成环境变量

export PATH

9. 通常系统默认变量为大写,用户自定义的变量可以小写。当然这取决于个人习惯

10. 取消变量的方法为unset

csdn1013@LAPTOP-QNFOQI5C:~$ version=$(uname -r)
csdn1013@LAPTOP-QNFOQI5C:~$ echo $version
4.4.0-19041-Microsoft
csdn1013@LAPTOP-QNFOQI5C:~$ unset version
csdn1013@LAPTOP-QNFOQI5C:~$ echo $version

参考:鸟哥的Linuxs私房菜

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值