this post was submitted on 01 Jan 2025
7 points (100.0% liked)
Shell Scripting
1378 readers
2 users here now
From Ash, Bash and Csh to Xonsh, Ysh and Zsh; all shell languages are welcome here!
Rules:
- Follow Lemmy rules!
- Posts must relate to shell scripting. (See bottom of sidebar for more information.)
- Only make helpful replies to questions. This is not the place for low effort joke answers.
- No discussion about piracy or hacking.
- If you find a solution to your problem by other means, please take your time to write down the steps you used to solve your problem in the original post. You can potentially help others having the same problem!
- These rules will change as the community grows.
Keep posts about shell scripting! Here are some guidelines to help:
- Allowed: Release Announcement of a command-line program designed for scripted use (e.g. bash, bats, awk, jq, coreutils/moreutils)
- Allowed: Tutorials on using shell languages or supplementary tools designed for scripted use
- Allowed: Code review/help requests for shell languages or supplementary tools designed for scripted use
- NOT Allowed: Announcement of a CLI or TUI program that is not designed for scripted use (Yes, your fancy Zsh plugin which pretty-prints the date and time using only builtins is very cool, but unless you actually want to discuss the code itself, please check out !commandline instead!)
- NOT Allowed: Domain-specific tutorials that do not involve shell scripting as a core component (e.g. docker-compose, ansible, nix). If you really love one of these, I'm sure there's a community out there ready to talk about them!
- NOT Allowed: Code review requests for non-shell programming languages and configuration languages (e.g. Python, Yaml)
In general, if your submission text is primarily shell code, then it is welcome here!
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I have a public git repository that I keep those kinds of recipes in.
So on a temporary system, I usually clone that repository first, so I can reuse past solutions.
Me, too, and it works for other Linux distros, but in this case it's a Windows Sandbox. Unless it's copy and paste, for this case it wouldn't be worth it and I assume there can be similar situations in the future for other reasons.
I once started to work on auto-setup scripts for Windows, but the unpredictable nature of it made me give up on that :D
Yeah. This still sucks, but is getting substantially better every year. My lazy rule of thumb is if I find a solution inside of WMI (Windows Management Interface), then I'll script it. Otherwise, I figure I'm wasting my time as it will change anyway.
If it's Windows 10 or later,
winget
is preinstalled (sort of / mostly) and has acess to a release ofgit
. (WinGet is available on 'Modern' Windows 10 and later., and it may take a few minutes to bootstrap itself after first login.)So I'm able to bootstrap this pattern on Windows with something like:
Syntax from Stack Overflow
I'm pretty sure I just use
winget install Git.Git
, but someone on SO recommends the above longer version. I'm guessing it prevents an interactive prompt, since there are more than one package source forgit
, if I recall.You may be happily surprised - we don't agree on much in technology, but bootstrapping with
git
is supported in places where nothing else works, and is finally also even popular among Windows engineers.I recall encountering two exceptional cases:
Batocera
.In both cases, I still version the relevant scripts in the same git repository, but I end up getting scrappy for deploying them.
On an immutable distribution, I'll
curl
,wget
, orInvoke-WebRequest
to get a copy of each file I need, as I need them. I encounter this often enough that I find it worth putting copies into a public S3 bucket with a touch of nice DNS in front. It does wonders for me remembering the correct path to each file.On a completely offline distribution, I run
git init --bare
in a folder on a the root of a thumb drive or network share, and then Igit push
a shallow copy of my scripts repo to it, andgit clone
from it on the machine to work on. I also simply file copy a copy as well, in case I cannot getgit
bootstrapped on the offline machine.I do still bother with the
git
version because I invariably need to make a tiny nuanced script correction, and it's so much easier (for my work patterns) to sync it back later withgit
.