私はbashスクリプトでバックグラウンドでコマンドを起動します。私はvarのstderrを回復する必要があり、どのようにわからない。助けて! :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)'というコマンドをバックグラウンドに送ることができますが、どこに置いてもgrep stopとiface varは空の。何か案が? – OscarAkaElvis