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.
_______________________________________________
freebsd mailing list
[email protected]
http://mailman.uafug.org.ua/mailman/listinfo/freebsd