問題ID: 45039

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2020-8-8 0:25
gadget5423  新米   投稿数: 1
問題ID: 45039

下図のジョブ番号2のジョブ(vim test.txt)をフォアグラウンド動作に切り替えたい。適切なコマンドは次のうちどれか。(全て選択)

jobs 2
bg2
fg 2
bg
fg

解説
バックグラウンドで動作中または一時停止中のジョブを、フォアグラウンド動作に切り替えるにはfgコマンドを利用します。

fgコマンドの書式は以下のとおりです。

fg [ジョブ番号]

したがって正解は
・fg 2
です。

101ver10.0のこちらの問題ですが、あずき本や他の参考書では、ジョブ番号の表現は「%番号」のように表し、%が無い「番号」だとプロセスIDを表すと書いてあります。
この問題の解説では%が無くてもジョブ番号を指定したことになると解釈できますがだとしたらプロセスIDの指定はどのように表現するのでしょうか。それともこの問題・解説が間違っているのでしょうか
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2020-8-8 1:34
arashi1977  長老 居住地: 広島  投稿数: 1715
初めて知りました。
というか、man や以下のドキュメント(man と同じ内容ですが)には % の使い方なんて書いてないんですよね。
https://www.gnu.org/software/bash/manual/html_node/Job-Control-Builtins.html

私の手元で試したのですが「fg %ジョブ番号」は OK で、「fg プロセスID」だとNGでした。
# yes > /dev/null
^Z ←サスペンドさせた
[1]+  停止                  yes > /dev/null ←job番号は1
# bg 1 ←「bg job番号」でOK
[1]+ yes > /dev/null &
# jobs
[1]+  実行中               yes > /dev/null &
# jobs -l ←ジョブのプロセス番号も含めて表示
[1]+  7223 実行中               yes > /dev/null & ←プロセスIDは7223
# fg 7223 ←「fg プロセスID」だとNG
-bash: fg: 7223: そのようなジョブはありません
# fg 1 ←「fg ジョブ番号」だとOK
yes > /dev/null
^Z
[1]+  停止                  yes > /dev/null
# fg %1 ←「fg %ジョブ番号」でもOK
yes > /dev/null
^C
#

%使うのって一般的なのかな…自分の環境が古いのかな…CentOS 7.8なんだけど。

引用:
この問題の解説では%が無くてもジョブ番号を指定したことになると解釈できますがだとしたらプロセスIDの指定はどのように表現するのでしょうか。それともこの問題・解説が間違っているのでしょうか
私の手元で検証した限りでは別にPing-tさんの問題集は間違ってないと思います。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2020-8-8 1:46
arashi1977  長老 居住地: 広島  投稿数: 1715
もう少しドキュメント探して、%がジョブ番号とかに関連する文字だとはわかりましたが、「%をつけなかったらプロセスID指定」というのは見つけられませんでした。
https://www.gnu.org/software/bash/manual/html_node/Job-Control-Basics.html#Job-Control-Basics

私が「あずき本や他の参考書」を持っていないので確認できないのですが、プロセスID指定という記載や問題があるのでしょうか?

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.