在尝试在 Shell bash 中打印带引号的行时查找匹配的 '“' 时出现意外的 EOF

unexpected EOF while looking for matching `"' while trying to print a quoted line in Shell bash

提问人:Mr.Transistor 提问时间:7/8/2022 最后编辑:Michael M.Mr.Transistor 更新时间:10/25/2022 访问量:79

问:

我想打印以下行,但我需要这一行:

export PATH=/local/Miniconda3/bin:$PATH >> ~/.bashrc; /local/Miniconda3/bin/python3 scripts/DNAscan.py ${var}

要引用。为了实现这一点,我使用了\“,但我收到以下错误:

unexpected EOF while looking for matching `"'

这是命令:

"${comand} bash -c  \"export PATH=/local/Miniconda3/bin:$PATH >> ~/.bashrc; /local/Miniconda3/bin/python3 scripts/DNAscan.py ${var}\""
bash shell eof

评论

0赞 William Pursell 7/8/2022
你希望用什么来完成?export 命令不会生成任何输出,因此重定向实际上不会执行任何操作。export PATH=/local/Miniconda3/bin:$PATH >> ~/.bashrc
0赞 William Pursell 7/8/2022
感觉好像你只想为调用 设置 PATH。如果您尝试在 .bashrc 中插入一行,则应手动执行此操作。自动附加到 .bashrc 会导致 10,000 行启动文件。别这样。scripts/DNSscan.py
0赞 Mr.Transistor 7/8/2022
我想将该命令用作在 Docker 容器中执行的命令。我需要它是字符串格式
0赞 Mr.Transistor 7/8/2022
我被迫再次设置路径,因为当我从 docker 容器外部运行 conda 时,它找不到它。相反,如果我运行一个在容器内调用 Conda 的命令,它可以完美地工作。我不明白问题的本质
0赞 William Pursell 7/8/2022
您需要为特定命令设置 PATH,但在 .bashrc 中不需要它。在 .bashrc 中获取它是解决问题的一种方法,但这(可能)不是实现它的最佳方法。您可以更早地在 docker 文件中添加它,或者更改模板,但您可能希望在 docker 文件中设置环境。需要更多细节。

答:

0赞 Gil Gottesman 7/11/2022 #1

我不确定您的命令出了什么问题,但想指出变量“comand”和“var”都在解析中,如果这不是您的意图,请考虑使用单引号“ '或用反斜杠”\“转义字符串中的”$“符号。