’和”在shell脚本中的使用区别

RUN echo ‘export PATH=“$PATH:~/bin”’ >> ~/.bashrc 和 RUN echo “export PATH=‘$PATH:~/bin’” >> ~/.bashrc的区别

这两个命令的主要区别在于它们如何处理变量扩展。

  • RUN echo 'export PATH="$PATH:~/bin"' >> ~/.bashrc:这个命令会将字符串’export PATH=“$PATH:~/bin”‘原封不动地添加到.bashrc文件中。这是因为单引号(’)在bash中不会对其中的变量进行扩展。所以,当你在新的bash会话中查看PATH变量时,你会看到字面上的"$PATH:~/bin",而不是$PATH变量的当前值。
  • RUN echo "export PATH='$PATH:~/bin'" >> ~/.bashrc:这个命令会先扩展$PATH变量的值,然后再将结果添加到.bashrc文件中。这是因为双引号(“)在bash中会对其中的变量进行扩展。所以,当你在新的bash会话中查看PATH变量时,你会看到$PATH变量的当前值,后面跟着”:~/bin"。

总的来说,你应该根据你的需求来选择使用哪种方式。如果你想在添加到.bashrc文件时就扩展$PATH变量的值,那么你应该使用双引号。如果你想在每次新的bash会话开始时才扩展$PATH变量的值,那么你应该使用单引号。