[過去ログ] くだらねえ質問はここに書き込め! Part 234 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
402(1): 2018/12/23(日)05:37 ID:HJ+H2evR(1/4) AAS
>>399
シェルスクリプトのexecは、カーネルのexecシステムコールを呼び出すもの
機能としては外部コマンド呼び出しに近いが、外部コマンドが終了しても処理が戻ってくることはない
callではなくgotoといったらわかるかもしれないな
プロセスの入れ替え。だからpidも変わらないし、プロセスツリーが深くなったりもしない
これがexecの機能なのだが、補足としてexecで呼び出す外部コマンドを指定しなかった場合は
エラーになったり終了するのではなく、現在のプロセス(カレントシェル)の処理が
そのまま続行するという仕様がある
この仕様を利用し、execで(外部コマンドを書かずに)リダイレクトのみを書いておくことで
カレントシェルの出力先を変更して処理を続行することが出来る
省5
404: 399 2018/12/23(日)09:58 ID:91g6WTHO(1) AAS
>>400-403
レスありがとうございます。
ユーザ権限でexec lsやexec ps -aef などをすると、確かに標準出力をした後にバッサリ切断されました
素人的に「?」なのは、exec lsなど後にコマンドが来るのはわかるのですが、
exec 2> $LOGERR の「2>」はコマンドでは無いと思うのですが、もしかして「2>」はリダイレクトコマンドの省略型なのでしょうか?
>exec以降のコマンドの標準エラー出力が
とありますが、それをエラー出力に戻すこともexecコマンドなのでしょうか。
バックアップのシェルスクリプトで見かけたのですが、execコマンドを意図的に使っているのは
execコマンドを使わないとできないことなのか、この時代なら使わないに越したことは無いのでしょうか?
スクリプトの最後に
省12
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.032s