未分類 29 1 月 2022 敲命令时参数总忘记加括号怎么破? 敲命令时参数总忘记加括号怎么破? 資深大佬 : zhoudaiyu 27 举个 大佬有話說 (42) 資深大佬 : clf 后面整个放在引号里是不是就可以了。 資深大佬 : yolee599 定一个规定,忘记一次就给 curl 项目捐 1 美元 主 資深大佬 : zhoudaiyu @clf 是,但是老忘记…. 資深大佬 : kidonng 尚未发布的 fish shell 3.4 可以开启 ampersand-nobg-in-token 支持直接输入这类命令 ( PR #7991 ) 資深大佬 : weixiangzhe 没有啥子问题,再来一遍不就好,建议快捷键 ctrl+p 上次的输入,ctrl+a 行首 ctrl+e 行首 ctrl+b ctrl+f 移动光标,只要我操作 够快,再来一遍无所谓吧 資深大佬 : kidonng 补充一下,ampersand-nobg-in-token 是解决 &符号的问题,还需要开 qmark-noglob 解决 ? 符号的问题 資深大佬 : jaredyam 所以要保持加引号的好习惯,甚至于什么时候用双引号什么时候用单引号,shell 脚本写多了大概会被动养成。 資深大佬 : josephxrays 时刻提醒自己要加引号,看下面这两条命令的区别就知道了rm -rf /home/ubuntu/ temprm -rf “/home/ubuntu/ temp” 資深大佬 : laoyur 不是该说忘记加引号吗? 資深大佬 : herojaxy 每次成对敲,再回退一格不就行了,””()[]{}这样肯定忘记 資深大佬 : ChrisFreeMan 记得以前看到一个 star 很高的 python 写的命令行工具,只要输错指令,敲出 fuck 就会帮你纠正 資深大佬 : zoharSoul @weixiangzhe #5 ctrl+a 也太难按了吧? 小拇指按 ctrl 无名指按 a? mac 键盘上模拟了下感觉手要断了 資深大佬 : nekomiao @zoharSoul 用手指根按,不用用手指头 資深大佬 : bowser1701 @zoharSoul ctrl 映射到大小写键 資深大佬 : learningman @josephxrays #8 还可以是 rm -rf / home/ubuntu/temp 資深大佬 : julyclyde 嘿嘿,这应该是加引号啊不是括号啊和 lz 同样的 curl 问题,我以前出过 100 万 usd 的事故 主 資深大佬 : zhoudaiyu @julyclyde #16 是我写错了,应该是引号,感谢。。我 append 一下 資深大佬 : kidonng 人家都说了总忘记,还提醒人家加引号感觉怪怪的。@ChrisFreeMan nvbn/thefuck 資深大佬 : sprite82 忘记一次,就敲 100 遍带引号的命令,来过一次就不会忘了 資深大佬 : pkookp8 只要看到&就加引号 資深大佬 : 2i2Re2PLMaDnghL @kidonng 貌似 the fuck 没这条规则? 資深大佬 : Xusually @julyclyde 请说出你的故事 資深大佬 : yidinghe 1 、先打两个引号; 2 、然后按一下左方向键使光标回到两个引号之间; 3 、然后再输入参数内容。 資深大佬 : goosegugu 猫猫头大军不请自来 資深大佬 : kidonng @2i2Re2PLMaDnghL 粗略翻了下貌似是没有,估计因为涉及 shell 的解析规则做不到 資深大佬 : 2i2Re2PLMaDnghL @kidonng 但是有未闭合的引号,sh 解析肯定是可以做的,都是纯字符串丢给 python 处理问题大概只是没人写( 資深大佬 : julyclyde @Xusually 就是因为&符号被 shell 解释,导致缺了一个参数,这个参数没有明确指定的时候,默认值是另一个,然后就执行了一个本来已经不打算再用的模块,把内存撑爆了,一个机房所有同类服务器进程全都爆了 資深大佬 : SingeeKing 用 zsh 会自动加 資深大佬 : SingeeKing 抱歉说错了,不是自动加引号,是会自动转义 資深大佬 : wangyzj 这个猫我见过 資深大佬 : Ritr 1.curl “”2.光标回退3.输入地址写其他代码也是,先 xx(){}再往里填 資深大佬 : kidonng @SingeeKing 万能的 zsh 又来了,又把哪个插件当原生了?“`[email protected] ~ % curl localhost/?a=1&b=2[1] 22401zsh: no matches found: localhost/?a=1 [email protected] ~ % [1] + exit 1 curl localhost/?a=1“` 資深大佬 : kidonng @2i2Re2PLMaDnghL 确实和 shell 解析有关,因为这类命令的运行过程是这样的 (以 curl localhost/?a=1&b=2 为例)1. Shell 起一个后台进程运行 curl localhost/?a=1 ,这个命令本身还有一个 ? 的 glob 问题2. Shell 运行 b=2 ,然后报 command not foundthefuck 应该只会看上一条命令,而不能综合考虑整个上下文。 資深大佬 : rrfeng oh my zsh 会自动转义,你按 & 它自动输入 &,粘贴的时候也有效。 資深大佬 : rrfeng 但是最好还是习惯性打引号,不能依赖工具。 主 資深大佬 : zhoudaiyu @yolee599 厨子不给钱,让我打钱吗 資深大佬 : oeagut 头像这个猫是不是 B 站发视频的啊 資深大佬 : 2i2Re2PLMaDnghL @kidonng thefuck 看的是 fc -ln -10 ,你可以从 thefuck –alias 里看到。 資深大佬 : Huelse 对于这种常用的,要不自己写个 alias ?变量放引号中 資深大佬 : newsj 多错几次就记得了 資深大佬 : p1gd0g 这就是我为什么讨厌写脚本,很没安全感。 資深大佬 : weixiangzhe @zoharSoul 默认确实是的,我也是 caps 映射成 长按 ctrl, 短按 esc 的