Я запускаю команду в фоновом режиме в моем сценарии bash. Мне нужно восстановить stderr этого в var и не знаю, как это сделать. Помогите! : DBash. восстановить stderr команды фона
#!/bin/bash
existingdestiny="8.8.8.8" #this is google dns for the example
ping -c 1 $existingdestiny -W 1 > /dev/null 2>&1
exitvar=$?
echo "exitvar: $exitvar"
nonexistingdestiny="172.16.0.234" #this is a non accesible ip example
ping -c 1 $nonexistingdestiny -W 1 > /dev/null 2>&1
exitvar=$?
echo "exitvar: $exitvar"
Это работает, оно возвращает 0, а затем 1, что правильно, приятно! но если я положу команду в фоновом режиме, я не могу взять stdout. Давайте посмотрим:
#!/bin/bash
existingdestiny="8.8.8.8" #this is google dns for the example
ping -c 1 $existingdestiny -W 1 > /dev/null 2>&1 &
exitvar=$?
echo "exitvar: $exitvar"
nonexistingdestiny="172.16.0.234" #this is a non accesible ip example
ping -c 1 $nonexistingdestiny -W 1 > /dev/null 2>&1 &
exitvar=$?
echo "exitvar: $exitvar"
Он возвращает 0 и 0, что является неправильным. Как я могу получить правильные ответы?
О да, мне нужен код выхода. И еще вопрос ... как отправить команду на задний план и в то же время получить stdout? У меня есть команда 'iface = $ (airmon-ng start wlan0 2>/dev/null | grep monitor)' и i wan, чтобы отправить ее на задний план, но когда я помещаю & где угодно, grep перестает работать и iface var пустой. Есть идеи? – OscarAkaElvis