スクリプトを作成してプロセスを終了してみてください。

スクリプトを作成してプロセスを終了してみてください。

私の目標は、実行中のすべてのプロセスを表示し、ユーザーに各プロセスを終了するかどうかを尋ねるスクリプトを作成することです。その名前を持つプロセスの各インスタンスに対してユーザーに削除するかどうかを尋ねます。ユーザーが「yes」と答えたプロセスのみを削除します(yではなくyesを入力する必要があります)。

#!/bin/bash

ps

  PID TTY          TIME CMD
 1681 pts/1    00:00:00 tcsh
 1690 pts/1    00:00:00 bash
 1708 pts/1    00:00:00 script
 1710 pts/1    00:00:00 ps

echo "Do you wish to kill PID?"
select yesno in "Yes" "No"; do
case $yesno in
    Yes ) $ kill -9;;
    No ) exit;;

各プロセスを終了するために問題を提起する方法と各問題のPIDを変更する方法を100%確信していません。変数を作成する必要があることはわかりますが、各PIDに変数を割り当てる方法がわかりません...

答え1

以下はforループを使用する例です。

checkit ()
{
    p="$1"
    echo "Do you wish to kill $p"
    select yesno in "Yes" "No"
    do
        case $yesno in
            Yes) $ kill -9 "$p";;
            No) exit;;
        esac
    done
}

for p in $(ps -o pid=)
do
    checkit $p
done

man psps出力のカスタマイズの詳細を参照してください。または:http://linux.die.net/man/1/psまたは:http://unixhelp.ed.ac.uk/CGI/man-cgi?ps

関連情報