这是问题:
当shell读取命令行时,双引号(“)之间的文本和单引号(')之间的文本有什么区别?
您需要考虑有环境变量和没有环境变量的两种情况。
我似乎找不到区别,对我来说这两种情况的使用方式相同。
我对硬引号和软引号有点了解,但这让我很困惑。
这是问题:
当shell读取命令行时,双引号(“)之间的文本和单引号(')之间的文本有什么区别?
您需要考虑有环境变量和没有环境变量的两种情况。
我似乎找不到区别,对我来说这两种情况的使用方式相同。
我对硬引号和软引号有点了解,但这让我很困惑。
这个问题措辞不好。它似乎指的是一般的变量,而不是试图区分“shell变量”和“环境变量”(即标记为导出到子进程的shell变量)。如果这是真的,那么正确的答案当然是双引号字符串允许参数扩展,而单引号字符串不允许。
双引号通常用于可以提取 Shell 变量值的地方。例子:
my_name="prabhu"
echo "printing $my_name"
输出:打印 prabhu
单引号不打印变量的值,而是打印给定的内容。例子:
my_name="prabhu"
echo 'printing $my_name'
输出:打印 $my_name