44 lines
1.2 KiB
Bash
44 lines
1.2 KiB
Bash
#!/bin/bash
|
|
if [ -z "$1" ]; then
|
|
msg="SHIT'S GOIN ON RN"
|
|
else
|
|
msg="$1"
|
|
fi
|
|
clear
|
|
|
|
broadcast_pty() {
|
|
# Check if a message was provided
|
|
if [ -z "$1" ]; then
|
|
echo "Usage: broadcast_pty \"Your message here\"" >&2
|
|
return 1
|
|
fi
|
|
|
|
# Check for root/sudo privileges (required to write to other users' PTYs)
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo "Error: This function must be run as root or with sudo." >&2
|
|
return 1
|
|
fi
|
|
|
|
local message="$1"
|
|
local timestamp
|
|
timestamp=$(date +"%H:%M:%S")
|
|
|
|
echo "Broadcasting message to all active terminals..."
|
|
|
|
# Loop through all numeric entries in /dev/pts/
|
|
for pty in /dev/pts/[0-9]*; do
|
|
# Ensure it's an actual character device file before writing
|
|
if [ -c "$pty" ]; then
|
|
# Send the message with a clear broadcast banner
|
|
{
|
|
echo ""
|
|
echo "=== SYSTEM BROADCAST ($timestamp) ==="
|
|
echo -e "$message"
|
|
echo "====================================="
|
|
echo ""
|
|
} > "$pty" 2>/dev/null
|
|
fi
|
|
done
|
|
}
|
|
|
|
broadcast_pty "\n\n\n\n\n\n\n\n\n\n\n\n\n\033[31mFOOOKN $msg IN PROGRESS DONT FUCK WITH ANYTHNG\e[0m\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" |