[過去ログ] くだらねえ質問はここに書き込め! Part 243 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
308: 2021/01/13(水)10:44 ID:wlFxT0l4(3/4) AAS
>>298
まず、そのハード必ず動く状態を作る。作れないなら壊れてる。
309
(1): 2021/01/13(水)10:51 ID:wlFxT0l4(4/4) AAS
/そのハード必ず/そのハードで必ず/
310: 2021/01/13(水)11:20 ID:z3AqITUy(1) AAS
ほんとに同じ状況でスイッチ押してるのに確率で何かが起きたり起きなかったりするなら多分ハードの問題だよ
311: 2021/01/13(水)11:23 ID:/02y8BwM(1) AAS
>>309
syntax error だわ、その記法は。
312: 2021/01/13(水)16:44 ID:nmbZ/UW1(1/2) AAS
/そのハード必ず動く/そのハート必ず奪ってやる/
313: 2021/01/13(水)18:26 ID:rAmyKHw2(1) AAS
>>298
Liveで再現したら自分であればハードを疑う。
USBマウス等外せるものは全て外して再現するか。メモリチェックの実施、メモリ(の一部)を取り外し(取り付け)ても再現するか、systemrescuecd等グラフィック負荷が無い状態で起動しても再現するか。
314
(4): 2021/01/13(水)20:25 ID:a0QbcgKP(1) AAS
期待する結果を得るにはどのようにしたらよいでしょうか

■作ったスクリプト(一部)
snmp_result=$(snmpwalk -t1 -v1 -c public 10.10.10.10 .1.3.6.1.2.1.1.5.0) || cmd_result01=1)&

■これで何を期待したか
snmpwalkが成功すると→snmpwalkの結果が$snmp_resultに格納(cmd_result01=1は実行されない)
snmpwalkが失敗すると→$snmp_resultは空(書き換わらない)、$cmd_result01には1が格納される

■実際
snmpwalkが失敗しようと成功しようと、
$snmp_result、$cmd_result01の値が書き換わらない

切り分けた結果、変数のスコープじゃないかというところまでは
省2
315: 2021/01/13(水)21:02 ID:1JmLG4qE(1) AAS
普通に地道にやってください
316
(1): 2021/01/13(水)21:17 ID:aIHHvY2b(1/2) AAS
>>314
サバ管業務かな懐かしい・・・
まずは、いきなり変数にほりこむんじゃなくてテキストで出力してみたら?
ログがいるよ。やっぱり。
317: 2021/01/13(水)21:19 ID:aIHHvY2b(2/2) AAS
>>316
こんな感じ
コマンドの結果を>ログ
変数の値を>ログ

突き合わせてみると切り分けしやすいよ。
318: 2021/01/13(水)22:04 ID:psJVVMhR(1) AAS
>>314
やったこと、期待したこと、結果が書かれた模範的な質問だ素晴らしい。

予想はおおむね正しいが多分少し認識がずれている。
(cmd; cmd)はサブシェル、つまり別プロセスで実行される。
だから子プロセスが変数に値をセットしても親プロセスに影響を与えないのは当然なのだ。

どうすればいいかというとやはり方針転換が必要で、ファイル経由で渡すとか、名前付きパイプ(mkfifo)で渡すとか。
トリッキーだけど頑張れば名前無しパイプでもできたと思う。
319: 2021/01/13(水)23:00 ID:+Xzihkx0(1/2) AAS
>>314
バックグラウンド実行は必要?必要ないなら
snmp_result=$(snmpwalk -t1 -v1 -c public 10.10.10.10 .1.3.6.1.2.1.1.5.0) || echo 1)
で失敗時はsnmp_resultに1が入るし、

バックグラウンド実行が必要なら
snmpwalk -t1 -v1 -c public 10.10.10.10 .1.3.6.1.2.1.1.5.0) &
pid=$!
wait $pid || cmd_result01=1
みたいな感じでバックグラウンド実行の結果をwaitして、失敗時はcmd_result01=1になるようにもできる。
320: 2021/01/13(水)23:04 ID:+Xzihkx0(2/2) AAS
あ、括弧が余計だった
snmp_result=$(snmpwalk -t1 -v1 -c public 10.10.10.10 .1.3.6.1.2.1.1.5.0 || echo 1)
とか
snmpwalk -t1 -v1 -c public 10.10.10.10 .1.3.6.1.2.1.1.5.0 &
pid=$!

321
(1): 2021/01/13(水)23:15 ID:nmbZ/UW1(2/2) AAS
>>314
こうすればいいだけだよ

snmp_result=$(snmpwalk -t1 -v1 -c public 10.10.10.10 .1.3.6.1.2.1.1.5.0) || cmd_result01=1
322
(1): 2021/01/13(水)23:32 ID:ggedyECG(1) AAS
>>321
質問主は言葉で表記していないが、必須条件としてバックグラウンドで実行があるんじゃないのか?
323: 2021/01/14(木)09:53 ID:3k3ZlGVZ(1) AAS
バックグラウンドで実行する場合、何をどのタイミングでどうしたいのかがわからないので答えようがない
自分が何をしたいのかわかっていれば、レスするだろ
それ待ち
324
(2): 2021/01/14(木)13:49 ID:sMZm6NO1(1) AAS
>>322
じゃあこうすれば。
(snmp_result=$(snmpwalk -t1 -v1 -c public 10.10.10.10 .1.3.6.1.2.1.1.5.0) || cmd_result01=1)&
325: 2021/01/14(木)15:50 ID:zcD4C0WN(1) AAS
>>324
君が質問を理解できていないのは分かった
326
(1): 2021/01/14(木)23:49 ID:fdrlCfXN(1) AAS
>>324
バックグランドの処理(別プロセスの)結果を=で簡単に取得できるってLinuxのbashってすごいな。
327
(1): 2021/01/15(金)01:16 ID:EqHI87pG(1) AAS
>>326
あー,なるほど。
俺のコードを見て,
「その部分だけ」だと勘違いしちゃってるのか。
1-
あと 675 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.036s