this post was submitted on 30 Apr 2025
3 points (80.0% liked)

Bash

892 readers
1 users here now

Talk about the Bash Shell and Bash scripting

founded 5 years ago
MODERATORS
 

I wrote pmtud.sh this weekend to get the MTU of a link (or tunnel) quickly, reliably, and without sending a ton of pings. It can do so in about 11 pings per target.

I had fun writing the entire thing in sh, tried making it "POSIX-compliant," but probably failed somewhere since POSIX isn't worded well. The script only needs dig and ping and uses shell built-ins for everything else. It performs a recursive binary search on the MTU search domain and asynchronously queues pings for later.

you are viewing a single comment's thread
view the rest of the comments
[โ€“] crestwave@lemmy.world 2 points 1 week ago* (last edited 1 week ago) (1 children)

Some stylistic notes

  • The head -1 syntax is obsolete in POSIX, replaced by head -n 1.
  • for filename in $(ls) is inefficient and will break on whitespace. You can use shell globbing for this instead, e.g., for filename in *.
  • A lot of the variables seem to be inconsistently quoted. I recommend running ShellCheck on it, as this can be dangerous (if you set TMPDIR to /tmp/ dir, I believe it will remove /tmp and dir)

Saved my bacon with this comment. Fixed a ton of (seemingly) innocuous errors.