Shell中单双引号的区别

在Linux下执行自动化任务难免需要写shell脚本

例如,打印所在路径

$ path=$(pwd)
$ echo 'I am at $path'
I am at $path

为何没有正确打印路径?

原来shell和python不同,单双引号有不同的含义

单引号' '会让shell忽略其中的特殊字符,有点类似于python中的r' ',自然会将$path原封不动打印出来

双引号" "则让shell正确识别$等特殊符号,将变量内容正确打印

$ path=$(pwd)
$ echo "I am at $path"
I am at /usr/local/bin

注意:Shell脚本复制变量是不可以随意加空格的,加空格后变量会被识别为命令随后报错。

原文地址:https://www.cnblogs.com/azureology/p/13039523.html