基础用法

总结说来:

单引号任何情况下都只表示引号内自身的字符。也就是说,单引号内的内容不会进行变量的代换与字符的转义。而在双引号中,则允许进行变量代换和字符转义。在对变量进行代换和字符进行转义的判断上,是由命令最外层的引号决定的。

详细介绍,还是要用示例来说明。

使用双引号输出:

复制代码 代码如下:

$a="World"

"Hello, $a"

运行结果为:

若使用单引号,将命令改为:

复制代码 代码如下:

$a="World"

'Hello, $a'

则输出结果为:

这一点很简单,在本教程之前的文章中也有所提及。

输出引号

在单引号中,如果要打印单引号,只需要使单引号重复即可,即,两个单引号会产生一个单引号输出。

例如:

复制代码 代码如下:

$a="PowerShell"

'I''m $a'

运行结果为:

在单引号中输出双引号可以直接输出,不需要进行转换。如:

同样在双引号中,如果要输出单引号,也不需要转换,直接打印即可。 而且,如果需要在双引号中打印双引号,也只需要重复双引号即可,即,两个双引号会产生一个双引号输出。

例1:

例2:

复制代码 代码如下:

$a="PowerShell"

"""My name is $a"",this program said."

运行结果如下:

使用转义字符

为了输出一些特殊字符,我们需要使用转义字符,在PowerShell中,转义序列由反引号定义,也就是键盘F1下面与波浪线同键的字符" ` "。

常用的转义字符串有:

`'

单引号

`"

双引号

`0

空值 NULL

`a

报警

`b

退格

`f

跳页

`n

新行

`r

换行

`t

横向Tab键(水平制表符)

`v

纵向Tab键(纵向制表符)

当然,在双引号中的变量名前使用反引号,也会取消此变量代换的功能。

例如上例中:

复制代码 代码如下:

$a="PowerShell"

"""My name is `$a"",this program said."

输出结果将为:

复制代码 代码如下:

"My name is $a",this program said.

如图:

需要说明的另一点,就是反引号的另一个作用:承接命令语句。

当我们需要输入的命令太长,则可以在命令中合适的地方使用反引号,另起一行接着上条命令书写。至于前面所指的“合适”的地方,简单的说,总不能将一个单词拆开吧。

例如:

Get-WmiObject Win32_NetworkAdapterConfiguration | Get-Member -MemberType Methods | Format-List

上面的命令非常长,不仅不便于我们的输入,也不便于修改、查看,所以,可以使用反引号修改如下:

Get-WmiObject Win32_NetworkAdapterConfiguration |` Get-Member -MemberType Methods |` Format-List

如图:

只需在命令结束后多敲一次回车,表示全部命令输入完毕即可,在命令中使用反引号与否,最终的运行结果是一样的。

使用反引号,不仅能够帮助我们更加方便的书写,在编写脚本时也利于命令的修改,查看。个人感觉,尤其在管道符后面使用反引号,十分利于理清命令结构。

至于其他转义字符的使用,其实都如同于在编程语言中或者其他脚本中的使用,方法都是一样的。就请各位自己试一试吧。

linux 脚本双引号转义,探索PowerShell(十五) 引号与转义字符相关推荐

  1. Linux Shell脚本入门教程系列之(十五) Shell函数简介

    本文是Linux Shell脚本系列教程的第(十五)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 上一篇之后,函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰 ...

  2. linux route 刷新_linux基础命令介绍十五:推陈出新

    本文介绍ip.ss.journalctl和firewall-cmd,它们旨在代替linux中原有的一些命令或服务. 1.ip ip [OPTIONS] OBJECT COMMAND ip是iprout ...

  3. Linux脚本双引号字符去除,shell命令去除字符串里双引号

    echo \"refs/changes/84/727284/1\" | sed 's/\"//g' shell变量内字符替换和变量字符修改 a=12345123 #将${ ...

  4. linux内核实验教程答案,20199310《Linux内核原理与分析》第十五周作业 Linux安全实验...

    1 补充知识 缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况.这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段.这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭, ...

  5. linux网络相关日志,网络安全系列之十五 Linux日志管理1

    Linux服务器一般都是被放置在机房中自动运行,管理员要了解服务器或是应用程序的运行状态,大都需要通过日志.日志文件用于记录Linux系统中各种运行消息,不同的日志文件记载了不同类型的信息,例如Lin ...

  6. 学习《Linux就该这么学》第十五课

  7. 【Linux从青铜到王者】第十五篇:Linux网络编程套接字两万字详解

    系列文章目录 文章目录 系列文章目录 前言 一.网络数据的五元组信息 1.理解源IP地址和目的IP地址 2.理解 "端口号" 和 "进程ID" 3.理解源端口号 ...

  8. Linux Shell脚本入门教程系列之(十六) Shell输入输出重定向

    本文是Linux Shell系列教程的第(十六)篇,更多Linux Shell教程请看:Linux Shell系列教程 Shell中的输出和输入的重定向是在使用中经常用到的一个功能,非常实用,今天就为 ...

  9. Linux Shell脚本入门教程系列之(十四) Shell Select教程

    本文是Linux Shell脚本系列教程的第(十四)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 在上一篇文章:Linux Shell系列教程之(十三)Shell分支语句 ...

最新文章

  1. Cassandra 可视化工具
  2. [LeetCode]: 242: Valid Anagram
  3. 提高.net程序性能和稳定性-CLR Profile
  4. matlab怎么输入输出文件,[转载]底层文件输入输出函数
  5. Asp.net2.0下的大文件上传服务器控件
  6. 异常处理python要求输入的为英文_python(异常处理)
  7. 决策树原理实例(python代码实现)_决策树原理实例(python代码实现)
  8. html5 ajax数据显示,html5的ajax学习(二)
  9. Java面向对象16种原则
  10. bzoj1046 [HAOI2007]上升序列
  11. 【算法学习笔记】03.白书练习题stat(排序入门:冒泡,桶)
  12. 第一章-网络安全行业
  13. 移植vsftpd FTP服务器到ARM-Linux系统
  14. 如何手机访问电脑服务器上的网页?
  15. 【rmzt:动漫俺修罗酷爱主题】
  16. 炫火影T5V笔记本怎么使用U盘重装系统?
  17. JAVA计算机毕业设计园艺生活网站Mybatis+源码+数据库+lw文档+系统+调试部署
  18. Ubuntu升级软件和Ubuntu升级系统的几条简单命令
  19. Java_输入输出(Scanner)
  20. 硬件测试工程师系列0--写在最开始

热门文章

  1. Sketchup快捷键设置存储位置
  2. 获取android Application的方法
  3. [双系统]win7下安装Ubuntu16.04
  4. 4G模块 EC20 AT+QIACT=1 激活失败
  5. 利用 Ophis 编写 Commodore 64 programs PRG 程序(五)
  6. Use Models
  7. Oracle 中的索引
  8. SFKP • 计算机百科丨中国数据库发展史
  9. 2022KCTF春季赛看雪为什么读书
  10. 心得体会写作技巧有哪些