小编典典

从 Bash 函数返回布尔值

all

我想编写一个 bash 函数来检查文件是否具有某些属性并返回 true 或 false。然后我可以在“if”中的脚本中使用它。但是我应该返回什么?

function myfun(){ ... return 0; else return 1; fi;}

然后我像这样使用它:

if myfun filename.txt; then ...

当然这是行不通的。如何实现?


阅读 96

收藏
2022-05-10

共1个答案

小编典典

使用 0 表示真,1 表示假。

样本:

#!/bin/bash

isdirectory() {
  if [ -d "$1" ]
  then
    # 0 = true
    return 0 
  else
    # 1 = false
    return 1
  fi
}


if isdirectory $1; then echo "is directory"; else echo "nopes"; fi

编辑

从@amichair 的评论来看,这些也是可能的

isdirectory() {
  if [ -d "$1" ]
  then
    true
  else
    false
  fi
}


isdirectory() {
  [ -d "$1" ]
}
2022-05-10