敲命令时参数总忘记加括号怎么破?

2021-11-23 10:31:43 +08:00
 zhoudaiyu
举个🌰,curl 127.0.0.1/?a=1&b=2 没加括号就变成了两个命令 curl 127.0.0.1/?a=1 和 b=2 。这种有办法避免吗?
4684 次点击
所在节点    Linux
42 条回复
2i2Re2PLMaDnghL
2021-11-23 14:39:15 +08:00
@kidonng 貌似 the fuck 没这条规则?
Xusually
2021-11-23 14:46:54 +08:00
@julyclyde 请说出你的故事
yidinghe
2021-11-23 14:49:17 +08:00
1 、先打两个引号; 2 、然后按一下左方向键使光标回到两个引号之间; 3 、然后再输入参数内容。
goosegugu
2021-11-23 14:52:11 +08:00
猫猫头大军不请自来
kidonng
2021-11-23 14:59:40 +08:00
@2i2Re2PLMaDnghL 粗略翻了下貌似是没有,估计因为涉及 shell 的解析规则做不到
2i2Re2PLMaDnghL
2021-11-23 15:12:46 +08:00
@kidonng 但是有未闭合的引号,sh 解析肯定是可以做的,都是纯字符串丢给 python 处理
问题大概只是没人写(
julyclyde
2021-11-23 16:09:04 +08:00
@Xusually 就是因为&符号被 shell 解释,导致缺了一个参数,这个参数没有明确指定的时候,默认值是另一个,然后就执行了一个本来已经不打算再用的模块,把内存撑爆了,一个机房所有同类服务器进程全都爆了
SingeeKing
2021-11-23 16:13:38 +08:00
用 zsh 会自动加
SingeeKing
2021-11-23 16:13:58 +08:00
抱歉说错了,不是自动加引号,是会自动转义
wangyzj
2021-11-23 16:14:17 +08:00
这个猫我见过
Ritr
2021-11-23 16:49:12 +08:00
1.curl ""
2.光标回退
3.输入地址
写其他代码也是,先 xx(){}再往里填
kidonng
2021-11-23 18:11:09 +08:00
@SingeeKing 万能的 zsh 又来了,又把哪个插件当原生了?

```
kid@Pavilion ~ % curl localhost/?a=1&b=2
[1] 22401
zsh: no matches found: localhost/?a=1
kid@Pavilion ~ %
[1] + exit 1 curl localhost/?a=1
```
kidonng
2021-11-23 18:15:05 +08:00
@2i2Re2PLMaDnghL 确实和 shell 解析有关,因为这类命令的运行过程是这样的 (以 curl localhost/?a=1&b=2 为例)

1. Shell 起一个后台进程运行 curl localhost/?a=1 ,这个命令本身还有一个 ? 的 glob 问题
2. Shell 运行 b=2 ,然后报 command not found

thefuck 应该只会看上一条命令,而不能综合考虑整个上下文。
rrfeng
2021-11-23 18:17:06 +08:00
oh my zsh 会自动转义,你按 & 它自动输入 \&,粘贴的时候也有效。
rrfeng
2021-11-23 18:17:34 +08:00
但是最好还是习惯性打引号,不能依赖工具。
zhoudaiyu
2021-11-23 18:35:19 +08:00
@yolee599 厨子不给钱,让我打钱吗😂
oeagut
2021-11-23 18:39:00 +08:00
头像这个猫是不是 B 站发视频的啊
2i2Re2PLMaDnghL
2021-11-23 18:40:23 +08:00
@kidonng thefuck 看的是 fc -ln -10 ,你可以从 thefuck --alias 里看到。
Huelse
2021-11-23 18:56:50 +08:00
对于这种常用的,要不自己写个 alias ?变量放引号中
newsj
2021-11-24 08:40:57 +08:00
多错几次就记得了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/817313

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX