shell脚本:2_单引号和双引号

2019-06-11  本文已影响0人  Y大宽

引号常用创建字面量,也就是原装的字面义。
所以操作脚本或命令行,要先知道shell是如何执行命令的

  • 1 执行命令前,shell先查找其中的变量,通配符和其他带刺,如有,则先替代
  • 2 将替换后的结果返回给命令

1单引号''

创建字面意思最简单的方法是用单引号将字符串包围起来
对shell来说,单引号之间的字符(包括空格)都会被当做单独的参数。
所以在使用字面量时,优先考虑单引号,它保证shell不会做任何替换。如果需求复杂,再考虑双引号。

grep 'r.*t' /etc/passwd

2 双引号

双引号" "''差不多,只是shell会对双引号中的所有变量都进行扩展。

$ echo 'there is no * in my path:$PATH'
there is no * in my path:$PATH

换成双引号就不一样了

$ echo "there is no * in my path:$PATH"
there is no * in my path:/home/kelly/bin:/home/kelly/.local/bin:/home/kelly/biosoft/gatk/gatk-4.1.2.0/:/home/kelly/biosoft/gatk/gatk-4.1.2.0/gatk:/home/kelly/miniconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:

反复提醒自己:引号中的任何东西都会被当成一个参数

上一篇 下一篇

猜你喜欢

热点阅读