如何用单行命令检查字符串是否在列表及git diff结果含指定文件
常见编程问题解答
1. 一行代码检查字符串是否存在于列表中
不同编程语言的实现方式略有不同,以下是几种常用语言的一行写法:
- Python:直接用
in关键字判断,示例:
执行后会返回"apple" in ["banana", "apple", "orange"]True,反之返回False。 - JavaScript:使用数组的
includes()方法,示例:
存在目标字符串时返回["a", "b", "c"].includes("b")true,否则返回false。 - Java:借助
Arrays.asList()转换后调用contains(),示例:
匹配成功返回Arrays.asList(new String[]{"x", "y", "z"}).contains("y")true,失败返回false。
2. 单行Bash命令检查git diff输出是否包含指定文件
你尝试的includes不是Bash的内置命令,正确做法可以用grep的静默模式实现:
git diff --name-only hash1 hash2 | grep -q "package.json"
- 说明:
-q参数让grep只返回状态码不输出内容,执行后用echo $?查看结果:返回0表示找到package.json,返回1表示未找到。 - 如果需要直接输出提示,可扩展为:
git diff --name-only hash1 hash2 | grep -q "package.json" && echo "package.json在修改列表中" || echo "package.json未被修改"
内容的提问来源于stack exchange,提问作者Lance Pollard
相关产品推荐
相关产品推荐

