1. ホーム
  2. バッシュ

[解決済み】Bash関数からbooleanを返す。

2022-04-05 01:11:10

質問

あるファイルが特定のプロパティを持つかどうかをチェックし、trueまたはfalseを返すbash関数を書きたいのです。そうすれば、私のスクリプトの中で"if"でそれを使うことができます。しかし、私は何を返すべきでしょうか?

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

であれば、こんな風に使っています。

if myfun filename.txt; then ...

もちろん、これはうまくいきません。どうすれば実現できるのでしょうか?

どのように解決するのですか?

0がtrue、1がfalseになります。

サンプルです。

#!/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" ]
}