You can see the curl options
here.
-f and
-s stop it from showing anything other than the result, and
-4 limits it to IPv4. There isn't really any point having
-4 with the dnsomatic update, but it's useful for getting your IP from a dual stack service like
https://api.my-ip.io/ip.
-u is for credentials, which is why the username/password follow.
The reason == works is likely because the busybox ash implementation adds a bunch of extra features over the posix standard, they either copied the syntax from bash or figured enough people would make the mistake that they might as well make it work.
-t on the logger just gives it a nice name in the log. You can use the command "logger --help" in ssh to see the other options, or even just play around with it there "logger -t test testing" will show up in the webui's log.
Getting logical operators to work in the right order is a little cumbersome, you can use {} for it but spaces/semicolons need to be right.
Code:
if { [ -z "$CURRENTIP" ] && [ "$1" != "force" ]; } || [ "$1" != "init" ]; then