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 ...
随机推荐
- Android显示相册图片和相机拍照
首先看最重要的MainActive类: public class MainActivity extends AppCompatActivity { private final int FROM_ALB ...
- QS之shell script
1 Invoke Mdoelsim In order to open Modelsim automatically, it is better to use a shell script to inv ...
- Android - 收藏集
Android - 收藏集 https://www.jianshu.com/p/dad51f6c9c4d?utm_campaign=maleskine&utm_content=note& ...
- HDU_1233_还是畅通工程
还是畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- list.sort结果是None
错误原因: list.sort()功能是针对列表自己内部进行排序, 不会有返回值, 因此返回为None. 举例说明: In [19]: a=["a","c" ...
- CAD执行一个带参数的命令(com接口VB语言)
主要用到函数说明: MxDrawXCustomFunction::Mx_SendStringToExecute 执行一个带参数的命令.详细说明如下: 参数 说明 CString sCmaName 命令 ...
- 【转载】appium自动化环境搭建
1.java开发环境JDK 2.android SDK(platform/platform tools/tools/build tools) 3.python下载安装(pip) 4.appium下载安 ...
- Java基础——面向对象(封装——继承——多态 )
对象 对象: 是类的实例(实现世界中 真 实存在的一切事物 可以称为对象) 类: 类是对象的抽象描述 步骤: 1.定义一个类 (用于 描述人:) ( * 人:有特征和行为) 2.根据类 创建对象 -- ...
- 去重 取最大的一条sql
select T.BILL_CODE,t.SCAN_TYPE,t.PIECE,SCAN_SITE,SCAN_MAN, row_number() over(partition by t.bill_cod ...
- 洛谷——P1594 护卫队
P1594 护卫队 题目描述 护卫车队在一条单行的街道前排成一队,前面河上是一座单行的桥.因为街道是一条单行道,所以任何车辆都不能超车.桥能承受一个给定的最大承载量.为了控制桥上的交通,桥两边各站一个 ...