在 Bash 里面比较反直觉的一点是,&&
跟 ||
的优先级是相同的,所以会有:
$ true && { echo "foo"; true; } || echo "bar" && echo "baz"
foo
baz
$ true && { echo "foo"; false; } || echo "bar" && echo "baz"
foo
bar
baz
这不是什么八股,而是日常工作中会出现的基本用法,然而只有 Claude 3.7 答对了,GPT 4o 跟 Gemini 2.5 pro 还在那 &&
的优先级高于 ||
且有短路,即 A && B || C && D
等价于 (A && B) || (C && D)
,所以给出第一个的结果是 foo
。
冷门技术就不提了,本以为发展到今天 LLM 已经不会在 Bash 这种常见技术上出现低级的事实错误了,看来还是会有。
![]() |
1
MonikaCeng 15 天前 via iPhone
GPT 你不能拿 4o 写代码,用 o1 或者 o3-mini-high
|
2
doraemonki 15 天前 via Android
试了一下 Gemini 2.5 pro 两个都回答对了
|
3
deplives 15 天前
|
![]() |
4
tywtyw2002 15 天前 via iPhone
又不是面试,没事问这些问题其实没多大意义。
与其让 ai 执行 code ,不如找个 bash 自己跑下。 vibing code 都要求生成可读性的 code ,如果出现这类 code ,直接重新生成就行了。目前 vibing code 的意义还是在于提升了生产效率。 以前写个 bash 脚本 不得 10 分钟起步吧,复杂一点的一个小时没了,现在 vibing code 提升效率 10 倍以上。 |
![]() |
5
FlorentinoAriza 15 天前
|
![]() |
6
superhot OP @MonikaCeng
@FlorentinoAriza 确实 o3-mini 会好些,4o 还是不行 @doraemonki 我新开了一个重新试了一下,这回对了,有点不稳定 @tywtyw2002 是因为我在看别人代码的时候也有点记不清了,想用 LLM 确认一下,结果发现三个模型答案不一致,又专门翻了一下手册。用来生成代码处理简单任务确实好用,但如果在这种程度的问题上都能发生事实错误,还需要对比及二次确认的话,整个过程并没有提效很多 |