从零开始学PowerShell(10) PowerShell中的子表达式

本文介绍了PowerShell中的子表达式,包括组表达式、子表达式和数组子表达式。组表达式用于设置优先级和动态调用属性;子表达式执行后返回单个或多个值,数组子表达式则始终以数组形式返回结果。通过示例展示了各类表达式的用法和返回值特点。

在PowerShell中你或许看到过类似@(......), $(......)(......)这类使用圆括号将一系列语句包裹在一起的写法形式出现在脚本中。今天我们要说的就是这几种表达式,它们被称作子表达式,子表达式。

三种表达式分别如下:

组表达式

(......) 我们称这类由圆括号括起来的表达式为组表达式

组表达式主要用于对语句块的优先级检测,可以看到圆括号内的语句块是优先级最高执行的。

PS /> (100+8) * 7
756

除了设置优先级以外,还可以作为动态调用属性的一种方式,圆括号内为要处理的语句块。

PS /> (Get-Process -ProcessName "WeChat").CPU
1284115.295873
子表达式

我们称$(......) 这类由美元$符号与圆括号组合的表达式为子表达式

在子表达式中,我们可以把任何想要执行的语句块,单个或者多个语句放在一起,当语句块内的表达式执行后返回的值如果是单个值的话它最终返回的其实是一个标量值。

PS /> $str1 = "123"
PS /> $($str1)
123
PS /> $($str1)[0]
1

反之如果是多个值,那么它返回的是一个数组类型值,下面的示例中我们定义了一个$str2数组变量,取它的下标[0]值,取的是首位标量的值。

PS /> $str2 = "123","456","789"
PS /> $($str2)
123
456
789
PS /> $($str2)[0]
123
数组子表达式

我们称@(......)这类由@符号与圆括号组合的表达式为数组子表达式

数组子表达式与子表达式类似,但主要的区别是无论表达式最后执行后返回的值是单个值还是多个值都是以数组形式返回的,从下面的实例中可以看到我们只给str1赋值了一个字符串123,但取它的首位下标,返回了整个数值。

PS /> $str1 = "123"
PS /> @($str1)
123
PS /> @($str1)[0]
123

另外,数组表达式即便返回的是一个空值,它也属于是数组类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值