用户创建 freeshell 时,如果密码包含特殊字符 $,freeshell 会创建失败,这是由于 shell 命令转义的一处 bug,双引号内只记得对单双引号转义了,忘了对 $ 进行转义。

由于双引号转义较为麻烦,现在参数改用单引号,参数内只需要对单引号(’)进行转义。shell 中单引号的转义方法是把(’)替换成(’\”),即首先关闭引用,插入单引号(由于在引用区域之外,需要用 \ 转义),再打开引用,也就是一个字符变成了四个字符。

修复 shell 命令转义的 commit