[freebsd] exit utility

Eugene Grosbein eugen at grosbein.net
Fri Feb 9 03:02:31 EET 2018


09.02.2018 3:02, Valentin Nechayev пишет:
>  Thu, Feb 08, 2018 at 21:48:25, spell wrote about "[freebsd] exit utility": 
> 
>> В процессе скриптописания возникла надобность в утилите, подобной
>> true/false, только с заданным значением кода выхода (пока обошлась
>> вызовом "sh -c 'exit 123'").
>> Если такая есть, просто ткните в неё, плиз.
>> Если нету, скажите что это блажь, и суровые шелл-программисты вызывают
>> целый шелл ради экситкода и не заморачиваются.
> 
> Метод 1 (кажется, самый эффективный)
> 
> $ set_status() { return $1; }
> $ set_status 26
> $ echo $?
> 26

+1

Только я бы обозвал функцию fail для похожести на true/false:

#!/bin/sh

fail() { return $1; }

# высосанный из пальца пример использования
while :
do
  if echo content > file; then
    ...
  else
    fail 74 # EX_IOERR
  fi
done

Только вот зачем это всё? Любой shell-скрипт можно завершить непосредственно
командой exit с нужным кодом без вызова "утилиты", а функцию в нём командой return.



More information about the freebsd mailing list