适用于终端但不适用于脚本

Works in terminal but not in script

pip install sphinx
sphinx-quickstart -q -p DSPackageDocs -a Me -v 1 --ext-autodoc
perl -i -e $'s/#sys.path.insert(0, os.path.abspath(\'.\'))/sys.path.insert(0, os.path.abspath(\'.\/DSPackage\'))/g' conf.py

第 3 行查看文件并替换一些文本。具体来说,我替换

sys.path.insert(0, os.path.abspath('.')) 

sys.path.insert(0, os.path.abspath('./DSPackage'))

此行在 shell 脚本的终端中工作得很好我收到错误:

Syntax error: ")" unexpected

如果我在 dash 中执行命令,我会收到错误消息。 dash 似乎不支持 $'...' 引号。

它在 bash 中工作正常,并在 zshksh 中发出不同的错误:

Unknown regexp modifier "/D" at -e line 1, at end of line
Unknown regexp modifier "/S" at -e line 1, at end of line
Unknown regexp modifier "/P" at -e line 1, at end of line
Unknown regexp modifier "/k" at -e line 1, at end of line
Can't find string terminator "'" anywhere before EOF at -e line 1.

确保在脚本的第一行指定正确的shell

#! /bin/bash

并正确调用脚本:

/path/to/the/script.sh

cd /path/to/the
./script.sh