Mastering PowerShell 学习笔记-3

第三章 变量

PS的变量不需要先声明就能直接使用,

定义一个变量,只需要在字符串前面加上$符号

变量可以由几乎所有的字符组成:字符数字下划线等,变量不区分大小写

你甚至可以用特殊的字符来定义变量,只需要用大括号把它括起来

# Variable names with special characters belong in braces:
${this variable name is "unusual," but permitted} = "Hello World"
${this variable name is "unusual," but permitted}
Hello World

= :等于号是赋值操作符,你可以给一个变量赋任何值,比如命令的结果

>$listing = Get-ChildItem c:\
>$listing

Directory: Microsoft.PowerShell.Core\FileSystem::C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 06.26.2007 15:36 2420
d---- 05.04.2007 21:06 ATI
d---- 08.28.2006 18:22 Documents and settings
d---- 08.08.2007 21:46 EFSTMPWP
d---- 04.28.2007 02:18 perflogs
(...)


ps允许你同时给多个变量赋值,下面的命令会给3个变量都赋值1

$a = $b = $c = 1

交换变量的值,你可以使用一个temp变量就像其他语言那样。也可以更加简洁:

$Value1 = 10; $Value2 = 20
$Value1, $Value2 = $Value2, $Value1
能这么写主要是因为逗号,它会让等号的两边解析成数组(关于数组会在第四章讲到),而如果等候两边都是数组并且数量相等时,ps会自动把右边的值依次赋值给左边。

Dir variable;  :可以看到所有的变量(自动变量,和你自定义的变量)

Dir variable:value* :找到特定的变量,此例子是找到value开头的变量,它会返回value1和value2

这条命令也可以 使用参数, 比如 Dir variable: -include value* -exclude *1* (只会返回value2)

如果不知道变量名字,但是知道变量的值,则可以通过以下命令查找:

dir variable: | Out-String -stream | Select-String " 20 "

注意:为了确定是找到‘20’,而不是任何值包含20(比如200),需要在20的前后加上空格。

判断变量的值是否存在:

Test-Path variable:\value2         返回true

Test-Path variable:\server          返回false

判断一个变量是不是存在并不是特别有意义,当你给一个变量赋值的时候,它会直接覆盖之前的值。但有时候你希望仅当它不存在的时候赋值,或者有些值是写保护的,你可能不能直接覆盖它的值。


变量会在ps关闭的时候直接被删除,所以并不需要特意去删除它,如果你非常想马上就删除它,那么可以使用del

# create a test variable:
>$test = 1

# verify that the variable exists:
>Dir variable:\te*

# delete variable:
>del variable:\test

# variable is removed from the listing:
>Dir variable:\te*

还有5个关于变量的命令

Clear-variable

Clear-variable a   相当于 $a=$null

Get-Variable

获得一个变量(返回一个object,而不是它的值

New-Variable

新建一个变量,可以设置特殊的选项

Remove-Variable

相当于del variable:\a

Set-Variable

相当于$a=12


常量,写保护的变量

通过添加选项ReadOnly设置变量为不可变的

New-Variable test -value 100 -description `
"test variable with write-protection" -option ReadOnly

(` :数字1左边的符号,是转义字符)


现在输入$test =200 命令将会出错。

现在test变量不能被改变,你必须先删除它然后再重新定义它。

del variable:\test -force
$test = 200


你可能觉得只要删除或者复制它就能改变一个变量还不够安全,那么ps给了你另外的选择,Constant

它就像传统的常量一样,一旦被定义就不能被修改或者删除,它只能由new-variable创建,如果这个变量的名字已经存在,你也会得到一个错误。

New-Variable test -value 100 -description "test variable with copy protection" -option Constant


可以使用-Force参数来改变一个readonly的变量,但无法改变一个constant的变量


变量的描述

虽然你设置了变量的描述,但是却无法通过 dir variable:\test 或者 get-variable test 看到描述信息,这是因为默认情况下,ps只限制一个对象最重要的属性,而描述显然不是重要的信息,所以如果你希望看到一个对象全部的信息,则要使用format-table *,或者format-list *

PS C:\Users\LIHUANG\Desktop\common> dir variable:\test |Format-List *


PSPath        : Microsoft.PowerShell.Core\Variable::test
PSDrive       : Variable
PSProvider    : Microsoft.PowerShell.Core\Variable
PSIsContainer : False
Name          : test
Description   : test 3
Value         : 3
Visibility    : Public
Module        :
ModuleName    :
Options       : None
Attributes    : {}

还有很多自动变量,当你启动ps,他们就存在,你可以使用dir variable: 来查看

自动变量分为3类,一类是用户信息,像$HOME 等,第二类是调整信息,你可以自定义ps的‘外观’,报告多详细的错误,当遇到错误一条命令是不是要继续运行等。第十一章会详细介绍。第三类是运行时信息,比如是谁在调用这条命令,命令的执行路径是什么。

你可以使用Get-Help about_Automatic_variables 来查看详细信息。










### 回答1: 《嵌入式Linux编程的精髓-第二版》是一本涵盖嵌入式Linux编程相关知识的书籍。嵌入式系统是指嵌入到设备中,负责控制设备运行的计算机系统。Linux是一种自由、开放源代码的操作系统,广泛应用于嵌入式系统中。 在第二版中,这本书提供了嵌入式系统开发的最新趋势和技术。它讲解了嵌入式Linux系统的搭建和配置,包括交叉编译工具链的搭建、Linux内核的配置和裁剪,以及Bootloader的加载等。此外,书中还介绍了如何进行硬件与软件的交互,包括GPIO控制、设备驱动的开发与调试等。 本书还特别强调了实践与项目开发。作者通过编写一些实际案例来引导读者探索不同的嵌入式项目,包括网络应用、图形界面、多媒体处理、无线通信等。这有助于读者将所学知识应用到实际开发中,提高嵌入式系统的开发能力。 此外,本书还介绍了调试和优化嵌入式系统的方法。作者分享了一些调试工具和技巧,帮助读者解决开发中的常见问题。还介绍了优化嵌入式系统性能的方法,以提高系统的速度和响应能力。 总之,《嵌入式Linux编程的精髓-第二版》是一本全面而实践性强的嵌入式Linux编程学习指南。通过学习本书,读者将能够掌握Linux的基本原理和嵌入式系统的开发技巧,并能够应用于实际项目中,提高嵌入式系统的性能和稳定性。 ### 回答2: 《嵌入式Linux编程:第二版》是一本涵盖嵌入式Linux系统开发的重要概念和技术的书籍。本书旨在帮助读者掌握嵌入式Linux编程的各个方面,从而成为一名嵌入式系统开发专家。 第二版的《嵌入式Linux编程》与第一版相比,进行了更新和扩展。本书涵盖了Linux内核的最新版本,并介绍了最新的嵌入式Linux开发工具和技术。同时,本书还增加了对容器化和虚拟化技术在嵌入式Linux系统中的应用的讨论。 本书的内容涵盖了从基础知识到高级主题的嵌入式Linux系统开发。读者将学习如何搭建嵌入式Linux开发环境,了解Linux内核的基本概念和结构,并深入研究设备驱动程序和文件系统的开发。此外,本书还介绍了嵌入式系统的调试和性能优化技术,以及与硬件交互的通信协议和接口。 读者在阅读本书时,将通过实例和案例学习,结合实际应用场景,将理论知识应用到实际项目中。通过深入学习嵌入式Linux编程,读者将能够理解和掌握嵌入式Linux系统的架构和工作原理,能够编写高效、可靠的设备驱动程序和应用程序,并能够解决嵌入式系统开发中遇到的各种挑战和问题。 总之,通过阅读《嵌入式Linux编程:第二版》,读者将获得全面的嵌入式Linux编程知识和技能,并能够在实际项目中应用这些知识和技能,成为一名嵌入式系统开发专家。 ### 回答3: 《嵌入式Linux编程掌握-第二版》是一本深入了解嵌入式Linux编程的指南。这本书适合有一定编程基础的读者,他们有兴趣学习如何在嵌入式系统中使用Linux。它提供了关于嵌入式Linux的详细知识和实践经验,包括Linux内核和设备驱动程序的基础知识,以及如何将Linux运行在各种不同的嵌入式硬件上。 这本书的第二版提供了更加深入和全面的内容,与第一版相比进行了更新和扩充。它介绍了如何为嵌入式系统配置和编译Linux内核,以及如何开发和调试Linux设备驱动程序。此外,它还涵盖了嵌入式Linux系统的网络和存储管理,以及如何优化和调试系统性能。 书中还包含了大量的示例代码和实验项目,读者可以通过实践来加深对所学知识的理解和掌握。此外,该书还介绍了一些流行的嵌入式开发板和硬件平台,以及常用的开发工具和调试技术。 总的来说,通过阅读《嵌入式Linux编程掌握-第二版》,读者将获得深入了解嵌入式Linux系统开发的能力,并在实践中掌握如何在嵌入式系统中应用Linux的技术和工具。这对想要在嵌入式领域从事开发工作的人来说是一本很有价值的参考书。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值