

Create a systemd user unit that waits for the network-online.target.
A script something like:
[Unit]
Description=Startup script
Requires=network-online.target
After=network-online.target
[Service]
Type=oneshot # either simple or oneshot, but sounds like oneshot
ExecStart=/home/<user>/script.sh
RemainAfterExit=yes #if oneshot, otherwise no
[install]
WantedBy=default.target
Edit the template according to your needs and dump it into ~/.local/share/systemd/user/<unit>.service
and enable it with systemctl --user enable --now <unit>
Oneshot services are for things like scripts that do a thing and exit. Simple is for basic services that intend to run for the lifetime of the system (or for user units, the lifetime of the user’s session).