今天在学习使用 shell 脚本语言中发现, 直接在 terminal 中输入的命令和直接执行相同命令的 shell 脚本结果居然不同!!
表现为 shell 脚本会打印出多余双引号, 我一度认为是解释器不同的原因,偶然发现了原因.
原始代码(保存为test.sh文件):
#!/bin/sh
#感觉真心是个坑,双引号居然不同
# Mac 默认编辑器编辑以下代码
echo 默认编辑器下双引号
echo “默认编辑器下双引号”
echo ”\n”
# 使用三方编辑器 Sublime Text 编辑以下代码
echo 使用SublimeText下双引号
echo "使用SublimeText下双引号"
echo "\n"
#因此,为了避免这中错误,最好修改一下系统默认双引号样式
#[打开键盘偏好设置]--[文本]--[双引号样式]->>选择最下面的样式
执行的实际结果(直接使用 sh 执行或者修改为可执行后执行):
可以看出两者的差别在于对双引号的解释处理. 原因是系统双引号样式问题:
[打开键盘偏好设置]--[文本]--[双引号样式] 进行修改设置:
系统当前双引号样式:
应该修改为最后一种: