私の目標は、実行中のすべてのプロセスを表示し、ユーザーに各プロセスを終了するかどうかを尋ねるスクリプトを作成することです。その名前を持つプロセスの各インスタンスに対してユーザーに削除するかどうかを尋ねます。ユーザーが「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 ps
ps出力のカスタマイズの詳細を参照してください。または:http://linux.die.net/man/1/psまたは:http://unixhelp.ed.ac.uk/CGI/man-cgi?ps