在 bash 條件語句中使用自訂測試函數

在 bash 條件語句中使用自訂測試函數

我有一個名為 bash 的函數,numeric它返回1or 0

numeric ()
{
  # compute k either 1 or 0
  echo "$k"
}

如何在條件語句中使用此函數來檢查變數是否var為數字?

答案1

請記住,在 shell 條件表達式的上下文中,返回值 表示0“成功”或“真”,非零值表示“失敗”或“假”,因此我建議調整該函數,使其返回0if參數是一個數值。

假設「條件語句」是一個if構造,則以下內容將起作用:

if numeric "$var"
then
   # Code if $var is numeric
else
   echo "$var is not numeric"
fi

答案2

使用返回

numeric ()
{
  # compute k either 1 or 0 || return 1
  echo "$k"
  return 0
}

numeric || exit 1

相關內容