Мне нужно выполнить такую команду, которая бы возвратила заданный код возврата. Код возврата принимается из входного потока.Пытаюсь сделать так:
> echo 32 | xargs exit
xargs: exit: Нет такого файла или каталога
Неожиданный сюрприз. Какого-то черта xargs не работает со встроенными командами шелла...Как по-другому можно решить эту задачу?
В общем, решил через perl:
> echo 32 | perl -e 'my $a=<STDIN>; exit($a)'
> echo $?
> 32
> В общем, решил через perl:
>
>> echo 32 | perl -e 'my $a=<STDIN>; exit($a)'
>> echo $?
>> 32
>вопрос открытый - зачем это надо?
> В общем, решил через perl:
>
>> echo 32 | perl -e 'my $a=<STDIN>; exit($a)'
>> echo $?
>> 32
>Вы б хоть про кода возврата в `man sh` почитали, в самом деле.
> Мне нужно выполнить такую команду, которая бы возвратила заданный код возврата. Код
> возврата принимается из входного потока.1) Зачем?
2) Прими код, сделай выход с этим кодом ВНУТРИ своей софтины.
3) Но зачем?> Пытаюсь сделать так:
>> echo 32 | xargs exit
> xargs: exit: Нет такого файла или каталога
>Ну тут как бы если и сработает, то код возврата exit увидит только xargs, а конвеер увидит код возврата xargs.
> Неожиданный сюрприз. Какого-то черта xargs не работает со встроенными командами
> шелла...xargs -- construct argument list(s) and execute utility
Действительно, сюпрайз, мазафака.> Как по-другому можно решить эту задачу?
Какую задачу то?
> Мне нужно выполнить такую команду, которая бы возвратила заданный код возврата. Код
> возврата принимается из входного потока.
> Пытаюсь сделать так:
>> echo 32 | xargs exit
> xargs: exit: Нет такого файла или каталога
>
> Неожиданный сюрприз. Какого-то черта xargs не работает со встроенными командами
> шелла...
> Как по-другому можно решить эту задачу?а переменная $? не спасет гиганта мысли?
> Мне нужно выполнить такую команду, которая бы возвратила заданный код возврата. Код
> возврата принимается из входного потока.
> Пытаюсь сделать так:
>> echo 32 | xargs exit
> xargs: exit: Нет такого файла или каталога
>
> Неожиданный сюрприз. Какого-то черта xargs не работает со встроенными командами
> шелла...
> Как по-другому можно решить эту задачу?что значит "возвратила?"
напечатала на экран?
код возврата который возвращает программа- на экран не печатается.. это штука которая существует только внутри командного процессора...
если надо именно ВОЗВРАТИТЬ код - то
exit код
>[оверквотинг удален]
>>
Код завершения: сначала передать, получит, завершиться им, затем его посмотреть и в конце вывести .. )))
Вещества нонча огонь! )))
Перестань по-стариковски пердеть. Я про другое очень огорчаюсь - здесь совсем перестали появляться студиозусы. И кого мы научим?
> И кого мы научим?Сейчас не учат, сейчас на тесты натаскивают. Как обычно - сделали со своим блекджеком, но сути исходной не поняли ))
ПыСы: да, я буду бздеть )))
>> И кого мы научим?
> Сейчас не учат, сейчас на тесты натаскивают. Как обычно - сделали со
> своим блекджеком, но сути исходной не поняли ))
> ПыСы: да, я буду бздеть )))есть мнение, что тесты те мне менее (например ЕГЭ) - хорошая вещь.
Не слушайте мнения, смотрите глазами на результат. Например на стобальников по рузкаму языгу к кауказа.
Получить код из stdin и с ним выйти можно как-то так
echo 111 | (read x; exit $x)Очевидно, что так делать бессмысленно. Код возврата здоровые люди используют только из специальной переменной и ни в какой ввод никому ее не передают (зачем!?).
if ! ./foo ; then
exit $?
fiИли если нужно какой-то свой код вернуть на выбор
if ! ./foo ; then
[ "$?" eq 123 ] && exit 321
[ "$?" eq 222 ] && exit 11
...
fi%%Не открывавшим даже ман по шеллу: вон из профессии.%%
>[оверквотинг удален]
> if ! ./foo ; then
> exit $?
> fi
> Или если нужно какой-то свой код вернуть на выбор
> if ! ./foo ; then
> [ "$?" eq 123 ] && exit 321
> [ "$?" eq 222 ] && exit 11
> ...
> fi
> %%Не открывавшим даже ман по шеллу: вон из профессии.%%Не долиставшим до описания функций и ``return`` - туда же.
> Мне нужно выполнить такую команду, которая бы возвратила заданный код возврата. Код
> возврата принимается из входного потока.
> Пытаюсь сделать так:
>> echo 32 | xargs exit
> xargs: exit: Нет такого файла или каталога
>
> Неожиданный сюрприз. Какого-то черта xargs не работает со встроенными командами
> шелла...
> Как по-другому можно решить эту задачу?returnCode(){ return "$1"; }
returnCode "32"
case "$?" in
<...>
Мдаааа. Годы идут, а мужики не знают про readline и встроенную в шелл конструкцию read. У чед гпт хоть бы спросили.