Bash条件表达式


文档摘要

Bash 条件表达式 在计算机科学中,条件语句、条件表达式和条件结构是编程语言中的特性,它们会根据程序员指定的布尔条件是评估为真还是假,来执行不同的计算或操作。 在 Bash 中,条件表达式由 复合命令和 内置命令使用,用于测试文件属性并执行字符串和算术比较。 以下是常用的 Bash 条件表达式列表。你不必死记硬背它们;在需要时随时查阅此列表即可! 文件表达式 如果文件存在,则为真。 如果文件存在且为块特殊文件,则为真。 如果文件存在且为字符特殊文件,则为真。 如果文件存在且为目录,则为真。 如果文件存在,则为真。 如果文件存在且为普通文件,则为真。 如果文件存在且为符号链接,则为真。 如果文件存在且可读,则为真。 如果文件存在且大小大于零,则为真。 如果文件存在且可写,则为真。

Bash 条件表达式

在计算机科学中,条件语句、条件表达式和条件结构是编程语言中的特性,它们会根据程序员指定的布尔条件是评估为真还是假,来执行不同的计算或操作。

在 Bash 中,条件表达式由 [[ 复合命令和 [ 内置命令使用,用于测试文件属性并执行字符串和算术比较。

以下是常用的 Bash 条件表达式列表。你不必死记硬背它们;在需要时随时查阅此列表即可!

文件表达式

  • 如果文件存在,则为真。
[[ -a ${file} ]]
  • 如果文件存在且为块特殊文件,则为真。
[[ -b ${file} ]]
  • 如果文件存在且为字符特殊文件,则为真。
[[ -c ${file} ]]
  • 如果文件存在且为目录,则为真。
[[ -d ${file} ]]
  • 如果文件存在,则为真。
[[ -e ${file} ]]
  • 如果文件存在且为普通文件,则为真。
[[ -f ${file} ]]
  • 如果文件存在且为符号链接,则为真。
[[ -h ${file} ]]
  • 如果文件存在且可读,则为真。
[[ -r ${file} ]]
  • 如果文件存在且大小大于零,则为真。
[[ -s ${file} ]]
  • 如果文件存在且可写,则为真。
[[ -w ${file} ]]
  • 如果文件存在且可执行,则为真。
[[ -x ${file} ]]
  • 如果文件存在且为符号链接,则为真。
[[ -L ${file} ]]

字符串表达式

  • 如果 shell 变量 varname 已设置(已赋值),则为真。
[[ -v varname ]]

在这里,varname is the name of the variable. The -v operator expects a variable name as an argument rather than a value, so if you pass ${varname} instead of varname,该表达式将返回假。

如果字符串长度为零,则为真。

[[ -z ${string} ]]

如果字符串长度非零,则为真。

[[ -n ${string} ]]
  • 如果字符串相等,则为真。为符合 POSIX 标准,应使用 = 与 test 命令一起使用。当与 [[ 命令一起使用时,它会执行如上所述的模式匹配(复合命令)。
[[ ${string1} == ${string2} ]]
  • 如果字符串不相等,则为真。
[[ ${string1} != ${string2} ]]
  • 如果 string1 在字典顺序上排在 string2 之前,则为真。
[[ ${string1} < ${string2} ]]
  • 如果 string1 在字典顺序上排在 string2 之后,则为真。
[[ ${string1} > ${string2} ]]

算术运算符

  • 如果数字 相等,则返回真。
[[ ${arg1} -eq ${arg2} ]]
  • 如果数字 不相等,则返回真。
[[ ${arg1} -ne ${arg2} ]]
  • 如果 arg1 小于 arg2,则返回真。
[[ ${arg1} -lt ${arg2} ]]
  • 如果 arg1 小于或等于 arg2,则返回真。
[[ ${arg1} -le ${arg2} ]]
  • 如果 arg1 大于 arg2,则返回真。
[[ ${arg1} -gt ${arg2} ]]
  • 如果 arg1 大于或等于 arg2,则返回真。
[[ ${arg1} -ge ${arg2} ]]

顺便提一下,arg1 和 arg2 可以是正整数或负整数。

与其他编程语言一样,你可以使用 AND & OR 条件:

[[ test_case_1 ]] && [[ test_case_2 ]] # And [[ test_case_1 ]] || [[ test_case_2 ]] # Or

退出状态运算符

  • 如果命令成功且无任何错误,则返回真。
[[ $? -eq 0 ]]
  • 如果命令未成功或有错误,则返回真。
[[ $? -gt 0 ]]

免责声明
本文件由基于人工智能的机器翻译服务翻译而成。尽管我们力求翻译准确,但请注意,自动翻译可能包含错误或不准确之处。应以原始语言版本的文件为准。对于关键信息,建议使用专业的人工翻译。对于因使用本翻译而产生的任何误解或误读,我们概不负责。


作者与出处
原作者: bobbyiliev
来源:bobbyiliev
许可证:MIT
整理: 灏天文库整理
由灏天文库结构化整理,提供目录导航、全文检索与在线阅读,便于系统化学习
发布者: 作者: bobbyiliev 转发
评论区 (0)
U