linux shell执行curl提示继续输入无法执行的问题学习与处理

1 问题描述

日常我们都会使用curl命令,例如打开chrome浏览器,在开发者模式下,将执行的http命令复制为curl,然后打开中端执行。但此时直接执行复制的命令常展示出 > 符号,提示继续输入,而无法继续执行。

:~ ts$ curl "https://blog.csdn.net/Revivedsun/ \
>
>
>

如上,我们执行命令出现 > 提示符号,提示我们继续输入。

环境变量有PS1、PS2、PS3以及PS4。一个非常长的命令可以通过在末尾加 \ 使其分行显示PS2多行命令的默认提示符,默认值是 >。 因此这是因为在复制命令时,出现了多行输入,又未输入结束命令符号,导致出现该问题。

除了 " 符号结合多行输入,未结束命令外,还有for in忘记输入结束符也会出现。

$ for str in hello world
> do
> echo "$str"
> done
hello
world

上述命令直到遇到done符号输入并回车,才会结束。

同理echo演示同样的问题。

ts:~ ts$ echo "a
> b
> c
> d
> e"
a
b
c
d
e

2解决问题

根据问题描述,我们知道在多行输入时记得结束命令,就可以正常执行。特别是在复制命令时,里面可能有复杂json或shell 无法识别的 " 引号。此时切换输入法,或编码改为ascii下的引号即可。 最终处理方法总结为下列三种:

  • 增加结束符号 for in 中的done、"引号
  • 调整引号编码,看看复制的是 “ 是不是shell无法识别
  • 使用ctrl+c强制结束执行

3 参考

[1].结束执行curl命令,https://unix.stackexchange.com/questions/542901/end-curl-command
[2].LINUX DEEPIN 中 $PS1, $PS2, $PS3, $PS4 等变量的解释,https://www.deepin.org/zh/2012/12/04/ps1-ps2-ps3-ps4-variables-explained/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值