shell学习三十七天----引用
引用
案例,假设我想输出一个星号(*),使用echo怎样做?
echo *
这是肯定不行的,须要将*转移,即:echo \*
这样就引出了引用的概念.所为引用,是用来防止shell将某些你想要的东西解释成不同的意义.假设你希望某些可能被shell视为个别參数的东西保持为单个參数,这时你就必须将其引用.
引用的三种方式:
反斜杠转义
字符前置反斜杠(\),用来告知shell该字符即为其字面上的意义.
单引號
单引號(‘...’)强制shell将一对引號之间的全部字符都看做其字面上的意义.shell脚本会删除这两个引號,仅仅单独留下被括起来的完整文字内容:
命令:echo 'here are some character * ? ` $ \'
输出:here are some character * ? ` $ \
不能再一个单引號引用的字符串里再内嵌一个单引號.即使是反斜杠,在单引號里也没有特殊意义(某些系统里,像echo ‘A\tB’这种命令看起来像是shell特别的处理反斜杠,事实上不然,这是echo命令本身有特殊的处理方式)
如需混用单引號和双引號,能够小心的使用反斜杠转义以及不同引用字符串的连接来做到:
命令:echo 'he said "how'\''s tricks?
"'
输出:he said "how's tricks?"
命令”echo "she replied ,\"movin' along\""
输出:she replied ,"movin' along"
无论怎么处理,这样的结合方式永远是非常难阅读的.
双引號
双引號(“...”)就像单引號那样,将括起来的文字视为单一字符串.仅仅只是,双引號会确切的处理括起来文字中的转义字符和变量,算术,命令替换:
x=hahaha
echo “$x”
输出:hahaha
在双引號里,字符$,”,`与\,如需用到字面上的意义,都必须前置\.不论什么其它字符前面的反斜杠是不带特殊意义的.序列\-newline会全然的被删除,就好像是用在脚本里的正文中一样.
单引號被括在双引號里时就无特殊意义了,他们不必承兑,也不许转移.
命令:echo "hahah'"
输出:hahah'
一般来说,使用单引號的时机是希望全然不处理的地方.否则,当希望将多个单词视为单一字符串,但又须要shell为你做些事情,此时使用双引號,比如将一个变量值与还有一个变量值连在一起:
oldvar=”$oldvar $newvar”
shell学习三十七天----引用的更多相关文章
- Java开发学习(三十七)----SpringBoot多环境配置及配置文件分类
一.多环境配置 在工作中,对于开发环境.测试环境.生产环境的配置肯定都不相同,比如我们开发阶段会在自己的电脑上安装 mysql ,连接自己电脑上的 mysql 即可,但是项目开发完毕后要上线就需要该配 ...
- spring源码学习(三)--spring循环引用源码学习
在spring中,是支持单实例bean的循环引用(循环依赖)的,循环依赖,简单而言,就是A类中注入了B类,B类中注入了A类,首先贴出我的代码示例 @Component public class Add ...
- shell学习三十八天----运行顺序和eval
运行顺序和eval shell从标准输入或脚本中读取的每一行称为管道,它包括了一个或多个命令,这些命令被一个或多个管道字符(|)隔开. 其实嗨哟非常多特殊符号可用来切割单个的命令:分号(;),管道(| ...
- linux shell学习三
Shell for循环 Shell for循环的语法如下所示 for 变量 in 列表 do command1 command2 ... commandN done 举例: ..} do echo $ ...
- Salesforce LWC学习(三十七) Promise解决progress-indicator的小问题
本篇参考:https://developer.salesforce.com/docs/component-library/bundle/lightning-progress-indicator/exa ...
- shell学习三十四天----printf详解
http://blog.csdn.net/shanyongxu/article/details/46744055
- shell学习五十七天----linux任务管理,针对上一讲的总结和扩展
linux任务管理 在linux下有两类任务管理,各自是一次性和周期性.一次性是at和batch,周期性又分为系统不论什么和用户任务. 一次性任务: 1.命令格式:at [选项] time 2.选项: ...
- python学习三十七天函数的作用域查找顺序LEGB
python函数的作用域查找顺序LEGB,分别为 locals eclosing globals builtins .了解作用域的范围,可以更好的操作你想要的业务,分别介绍一下. 1,local ...
- 前端学习(三十七)angular(笔记)
MVC 后台 M Module 数据层 V View 视图层 C Contro ...
随机推荐
- Git——基本操作
Shell 基本概念 shell俗称壳,为使用者提供使用界面,例如DOS下command以及后来的cmd.exe shell分类 图形界面shell,提供友好的可视化界面,例如windows操作界面, ...
- 简单了解了下SEO与SEM的机制
SEO:搜索引擎优化SEM:搜索引擎营销 SEO排名机制:搜索引擎蜘蛛 权重 算法 排名规则 搜索引擎提交入口: 1.百度搜索网站登入口 2.Google网站登入口 3.360搜索引擎登入入口 4.搜 ...
- day20-面向对象基础
目录 面向对象基础 面向过程编程与面向对象编程 面向过程编程 面向对象编程 类与对象 类 对象 定义类和对象 定制对象独有特征 对象属性查找顺序 类与对象的绑定方法 类与数据类型 对象的高度整合 面向 ...
- Eclipse报错:Setting property 'source' to 'org.eclipse.jst.jee.server:xx' did not find a matching property
Shell代码 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to ' ...
- CSDN怎么转载别人的博客
在参考"如何快速转载CSDN中的博客"后,由于自己不懂html以及markdown相关知识,所以花了一些时间来弄明白怎么转载博客,以下为转载CSDN博客步骤和一些知识小笔记. 参考 ...
- mysql (5.7版本)---的配置
1.去到官方网站下载 https://dev.mysql.com/downloads/installer/ 或者直接下载 --> https://dev.mysql.com/get/Down ...
- 每日命令:(8)cp
cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一.一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数.但是如果是 ...
- chrome://plugins 无法打开的解决方法,同时解决“该网页已屏蔽插件-adobe flash player”
chrome打开想要看视频时提示该网页已屏蔽插件-adobe flash player,在网上查了半天说在chrome plugins里面打开就可以了.可是chrome://plugins 无法打开, ...
- Python面向对象之面向对象封装案例
面向对象封装案例 封装 封装是面型对象编程的一大特点 面向对象编程的第一步--将属性和方法封装到一个抽象的类中: 外界使用类创建对象,然后让对象调用方法: 对象方法的细节都被封装在类的内部. 一个对象 ...
- BZOJ 1726 洛谷 2865 [USACO06NOV]路障Roadblocks【次短路】
·求1到n的严格次短路. [题解] dijktra魔改?允许多次入队,改了次短路的值也要入队. #include<cstdio> #include<algorithm> #de ...