テキストファイルからユーザーを削除するスクリプトを作成しています。しかし、削除する前にユーザーに実行中のプロセスがあることを確認し、その場合はすべてのプロセスを終了して削除したいと思います。これが私がする方法です:
if
#user doesn't exists then print user not exist
else
pids = `ps U "$name" -o pid | head -n -1`
if [ -n "$pids" ]
then
for pid in $pids
do
sudo kill -KILL $pid
done
fi
sudo userdel
$name -r -f
echo
echo "The user - $name - has been deleted!"
echo
fi
done < "$fname" # double-quote fname
echo
したがって、デフォルトでは、これはユーザーに実行中のプロセスがないことを確認するifステートメントを使用してユーザーを削除するループであり、実行中のプロセスがある場合は強制的にプロセスを閉じてユーザーを削除します。
しかし、うまくいきませんpids: command not found
。 ..解決策はありますか?どうすれば解決できますか?
ベストアンサー1
次のコードがあります。
pids = `ps U "$name" -o pid | head -n -1`
bash はここで空白に対して難しいです。スペースを削除すると、期待pids = ...
どおりに機能します。
pids=`ps U "$name" -o pid | head -n -1`