Linux shell 脚本错误,导致双引号句子结束[已关闭]

问题描述 投票:0回答:11

当我在 Linux shell 中执行脚本时,我得到以下输出:

dquote>

这是什么意思?

linux shell quotes
11个回答
181
投票

这意味着您执行了一行仅包含一个双引号字符的代码,如下所示:

echo "Hello

外壳正在等待对方报价。


61
投票

如果在带引号的字符串中包含

!
,例如
password="this1smyp4ssword!"
,它也将以
dquote>

结尾

16
投票

当您在终端上显示“dquote>”时,不用担心只需按键盘上的双引号按钮即可退出

"

截图示例:


11
投票

shell 正在等待未完成命令的另一个引用。

CTRL+G 将离开该状态并撤消命令。

输入“并按 Enter 是另一种离开方式,但它会执行您可能输入错误的内容。


5
投票

如果密码中有感叹号,例如password="passwordhas!symbol",它也会以

dquote>

结尾

要去掉

dquote
,请使用单引号,如下所示。 密码='密码有!符号'


3
投票
dquote> 

上面的提示肯定意味着您必须取消引用引号的开头,即

"
,并使用另一个引号:
"

请在

"
提示中写一封信,即另一封信:
dquote>


2
投票

这可能意味着您在运行命令时转义了结尾的双引号。 喜欢:-

echo "Hello\"

因此您需要再提供一个双引号。


2
投票

您需要在文本中使用双引号。

shell 正在等待您添加 second 双引号

"
,因此会出现提示
dquote>
。添加后这个提示就会消失。

单引号同样适用

'


2
投票

这恰好发生在我身上,当我输入 " 并按 Enter 时,会显示 >。如果您遇到这种情况,只需按 control-c


1
投票

注意:检查行中的双引号是否是普通的 ASCII 双引号。

我从电子邮件中截取了一条命令,并收到“dquote>”提示。事实证明,文本编辑器已将最后的双引号替换为双反引号,这看起来几乎相同。如果有疑问,请删除并重新输入所有双引号。


-1
投票

您需要使用单引号而不是双引号,并确保它们是闭合的。

“你好”应该是“你好”

'你好应该是'你好'

© www.soinside.com 2019 - 2024. All rights reserved.