2015-01-05 3 views
1

Есть ли способ захватить возвращаемое значение запуска программы с помощью скрипта -c?получить возвращаемое значение запуска команды с помощью скрипта -c

Например (в Баш)

/bin/false; echo $? # outputs 1 

/usr/bin/script -c "/bin/false" /dev/null; echo $? 
# outputs 0 as script exited successfully. 

мне нужно, чтобы получить значение, возвращаемое из/бен/ложь, а не из/USR/BIN/скрипт .. это возможно? Я использую скрипт, чтобы обмануть программу, думая, что она работает в реальном tty, хотя это не ... Спасибо!

+3

в соответствии с 'man script', кажется, что добавление опции' -e' может вернуть код выхода дочернего процесса. – ymonad

+0

wow Мне нужно больше кофе .. Я, должно быть, прочитал страницу человека 3 раза и как-то пропустил это ... спасибо! – user1390471

+0

Я искал страницу для слова «возврат» и нашел ее через несколько секунд. – Jasen

ответ

0

В соответствии с man script с использованием опции -e возвращается код выхода дочернего процесса.

-e, --return 
     Return the exit code of the child process. 
     Uses the same format as bash termination 
     on signal termination exit code is 128+n. 

Вот пример.

$ /usr/bin/script -e -c "/bin/false" /dev/null; echo $? 
    1 
    $ /usr/bin/script -e -c "/bin/true" /dev/null; echo $? 
    0 
    $ /usr/bin/script -e -c "exit 123" /dev/null; echo $? 
    123 
Смежные вопросы