&
>ナポリタン食べたい
1 : 投げ槍
2 : 匙を投げる
3 : exit
子プロセスじゃなくてスレッドで処理したいのかな
>>932 931 は
#!/bin/bash
fo() {
echo Child
sleep 3
}
fo&
echo Parent
wait
こういうことじゃないかな。
>>934 何で違うと思うのか説明しろボケ
正しく理解してるなら質問しにくる必要ないよな。
さっさと失せろ。
forkして、親プロセスのみexitして、子プロセスをinitの子供にするみたいなこと
やりたいんじゃないかな。
>>941 だと子プロセスがバックグラウンドになってしまう。
子プロセスもフォアグラウンドのまま親だけexitしたいみたいな。
それならば、バックグランドで実行して親のシェルプロセスはそのまま終了すればいい。
>>944 それだとやはりバックグラウンドプロセスのままになってしまう。
バックグラウンドプロセスはsignalの扱いがフォアグラウンドと違うから。
そこ理解してない奴多いんだけどさ。
>>945 説明が下手なのが一番の問題
「本当にやりたいこと」がさっぱり分からない
「理解していない奴多い」とかいう以前に何がしたいのか伝わっていないから
>>944のような回答が出る
飽くまで想像だけど、
親と子にPIDが違うだけでほぼ同じ処理をさせたいとする。
たまには親か子かを意識して違う処理に分岐するかもしれない。
ってとき、シェルスクリプトでどう書くのがスマート?
>>946 実際やりたいことなんかなくてただイチャモンつけたいだけなんだろう。
forkはしたいけどexecはしなくないってことでないの?
それでソース詠唱したいw
bashでfork出来ないってことをどうして認めないのか謎
オワドの涙は0円
今井の挨拶100円
____
/____\
/ィ赱、i_i_r赱ミ\
/ ̄ ̄ ̄ィ'。_。ヽ ̄ ̄\ レオナルド
| / _lj_ } |
\ 、{ ^' ='= '^' /
____
/____\
/ィ赱、i_i_r赱ミ\
/ ̄ ̄ ̄ィ'。_。ヽ ̄ ̄\ ラファエロ
| / _lj_ } |
\ 、{ ^' ='= '^' /
____
/____\
/ィ赱、i_i_r赱ミ\
/ ̄ ̄ ̄ィ'。_。ヽ ̄ ̄\ ドナテロ
| / _lj_ } |
\ 、{ ^' ='= '^' /
____
/____\
/ィ赱、i_i_r赱ミ\
/ ̄ ̄ ̄ィ'。_。ヽ ̄ ̄\ ラファエロ
| / _lj_ } |
\ 、{ ^' ='= '^' /
>>952 UNIX系のOSでfork(vfork)以外に子プロセスを生成する方法ってある?
bashで関数をバックグラウンドで実行するときって、forkしてるんじゃないの?
質問してる奴もよく理解してないみたいだが
forkじゃなくてsetsidができるかどうかじゃないの?
>>952 そもそも質問者が言うforkが何を指しているのか分からん
エスパー待ち
fork()しただけで親プロセスと同じプロセスグループに属してる状態が欲しいってことか
sh関数をバッググランド実行すると親プロセスとは別のプロセスグループに設定されてから実行されるから、
fork()じゃないと言いたいわけね?
日本語不自由すぎだろw
クズい質問者にダラダラつきあってんじゃねーよ
甘やかすな
ゆとりだから関数でサブプロセス化することも制御の仕方も分かってないだけだろ
要するに初めに覚えた言語の関数じゃないと理解できないただのアホ
裏で動いてる本質的な処理が全く分かってない
出てこなくなった質問者を擁護してもしかたないんだけど、
プリミティブとしてのforkが欲しかったんじゃないの?
その方が細かい制御ができる場合もあるし。
もちろんCのfork()しか理解してないという可能性も高いけど。
もうこの話終わりでいいだろ。
開発のforkだったりして
966 :
名無しさん@お腹いっぱい。:2013/10/29(火) 14:01:49.81
俺たちはエスパーになる特訓中。
実際のところ、bashでforkのみする方法ってあるの?
>>968 関数を呼んだり、コマンドを実行したりせずに、ということなら
無いんじゃないか。
fork が必要なら別の言語使った方がいいね。
971 :
921:2013/10/29(火) 19:39:57.67
みんなありがとう
このままスレ埋まりそうな勢いだなw
case文の途中で抜けたいんだけど
breakつかうと上のfor文抜けちゃうので
どうしたらいいか よいアイデアを 出すのだ
goto
gotoをend行き以外で使うの恐い
てか、gotoってcshかよ
ラベル付きbreakってないんだっけ。
978 :
名無しさん@お腹いっぱい。:2013/10/30(水) 14:04:29.64
caseにbreakは無いのでド壺ってるわけで、ラベル付きbreakはあったとしても役立たず
if文で続きの処理をしなければいいだけ。
case $foo in
bar) baz; if qux; then quux; fi ;;
esac
>>979 ありがとう
やっぱこのダサい方法しかないか
ひらめいた
こんなのどう?
for onlyonceforbreakincase in 1; do
case $foo in
bar) baz; if qux; then break; fi; quux ;;
esac
done
え、continueってこういう時使うんじゃないの
>>982 それじゃ、case文の後が実行されないだろ
984 :
名無しさん@お腹いっぱい。:2013/10/30(水) 22:42:14.92
これ、バグ?
#!/bin/sh
LANG=C
export LANG
d=^`date "+%b %d %H:%M"`
echo $d
d=^`env TZ="JST offset 00:01" date "+%b %d %H:%M"`
echo $d
(実行結果:env TZ付きで打つと%Hがたぶん%mで出てくる)
^Oct 30 19:19
^Oct 30 10:18
dateの-vでこと無きを得たけど。
If TZ appears in the environment but its value is a null string,
Coordinated Universal Time (UTC) is used.
986 :
984:2013/10/31(木) 00:13:45.03
>>985 うまく書けますた。thx
アホなこと書いちゃった(^_^; 試した時期が悪かったなw
987 :
984:
ちょっと訂正。TZでうまく(-1分の時刻を表示)書けてはいなくて、結局date -vを採用した。
TZは、UTC+15とかでフツーにhour単位でズラすのは知ってたから、勘違いした。
'offset'付けるとNGなのね。