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

引号常用创建字面量,也就是原装的字面义。 所以操作脚本或命令行,要先知道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:

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券