Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/meithecatte/bashfuck
Write any bash with only the punctuation characters
https://github.com/meithecatte/bashfuck
Last synced: 3 days ago
JSON representation
Write any bash with only the punctuation characters
- Host: GitHub
- URL: https://github.com/meithecatte/bashfuck
- Owner: meithecatte
- License: other
- Created: 2024-08-18T15:12:42.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2024-08-19T12:34:54.000Z (5 months ago)
- Last Synced: 2025-01-01T11:07:51.166Z (10 days ago)
- Language: Shell
- Size: 3.91 KB
- Stars: 83
- Watchers: 4
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- my-awesome-github-stars - meithecatte/bashfuck - Write any bash with only the punctuation characters (Shell)
README
## bashfuck
bashfuck is a dialect of bash where you only use the ASCII special characters.
No letters, no numbers.To help you with your bashfuck journeys, this repository includes a handy
utility: a bashfuck encoder.```
$ bash bashfuck.sh
usage: bash bashfuck.sh source.sh output.sh
```## Limitations
- depends on the precise wording of bash error messages, and as such doesn't work if your locale is set to something other than English
- unfortunately, there is no bashfuck-compliant way to capture the stderr of a command directly to a variable. As a workaround, bashfuck first writes it into a file, and then reads this back. By default, this file is `._.` in the current working directory. Note that if this file exists, it will be overwritten.
- I think the decoding code I wrote might be quadratic. Shouldn't be too hard to fix. PRs welcome!## How it works
I don't really feel like writing this section right now. Go forth, human! Examine the cursed artifact! You'll certainly learn something about bash that you didn't know before.
If you want a hint, take a look at `encoder-payload.sh` — though note that, due to the self-reference, this won't work properly when not itself encoded.
## Other considerations
- please make sure to observe [the terms of the license](./LICENSE)
- join us in `##bash-crimes` on libera.chat