r_bash – Telegram
model="$2"
shift 2
;;
*)
user_input+=" $1"
shift
;;
esac
done

# Check for --clear flag
if $clear_flag; then
clear_history_and_logs
exit 0
fi

# Run chat function with input from command line or pipe
if [ -p /dev/stdin ]; then
# Input is coming from a pipe
piped_input=$(cat)
if [ -n "$user_input" ]; then
chat "Context: $piped_input\n\nTask: $user_input" "$model" false
else
chat "$piped_input" "$model" false
fi
else
# Trim leading and trailing spaces from user input
user_input="${user_input#"${user_input%%[![:space:]]*}"}"
user_input="${user_input%"${user_input##*[![:space:]]}"}"
fi

if [ -z "$user_input" ]; then
echo "Usage: $0 [--clear] [--model MODEL] \"Your message here\"" >&2
echo " echo \"Your message here\" | $0 [--clear] [--model MODEL]" >&2
exit 1
fi

# Check if the noscript is being piped
if [ -p /dev/stdout ]; then
is_piped=true
else
is_piped=false
fi

chat "$user_input" "$model" "$is_piped"

https://redd.it/1ep1nkt
@r_bash
What’s your keyboard of choice ?

I like Topre switches but the Realforce I have is 100% size so I need to downsize to a 75%, but open to cherry mx style switches too.

What’s your keyboard of choice ?

https://redd.it/1ep32ni
@r_bash
How to detach running process from the terminal?

Hi! My task is to show a loading indicator for some application while it's being
launched (not when after it's started). To simulate some long running program
I've written this simple noscript:

#!/usr/bin/env bash

sleep 10000s


To show a loading indicator I decided to use gum spin {{command}}:

gum spin -- bash -c './long_running_program.bash & disown $!'


But it doesn't work as I expect: gum spin hangs out and waits. How to fix
this code to make it solve the initial task?

More context: I need it because I am writing a terminal launcher for Flatpak
applications. The code is in another shell but I think that if I knew how to solve it in Bash I would be able to do it in Fish too.

https://redd.it/1ep5y62
@r_bash
Output alignment help.

I have been trying to get this alignment right. As you see the Disk Info section of the output doesnt align. Im close to just leaving it lol.

output is shown in the images tab. Heres the code snippet if you want to try:

# https://pastebin.com/P58YNAKX

https://redd.it/1epo07v
@r_bash
Avoid cut words in long sentences

Using "cat" I often find myself having words cut off if the words are part of a sentence longer than the width of the terminal (on average 80 characters).

Is there a way to get a new line to the last blank space before the sentence reaches the edge of the window?

Thanks in advance.

EDIT: it seems that the command fold -sw 80 ./file did the trick

I'd like to know your solutions instead.

https://redd.it/1eps3r5
@r_bash
How to add shell command?

I am trying to learn assembly and constantly using nasm and then linking object file is really pissing me off, so I tried to make a bash function that will take the name of .asm file and do the thing, but my limited knowledge (nearly none) of shell noscripting did not allowed me to do this.

function nasm64_asm() {

object_name="middle_runner"

argv1=$1

run="run_it"

"nasm -f elf64 -o ${object_name}.o ${argv1}"

"ld ${object_name}.o -o ${run}"

}

export -f nasm64_asm

I made it like this and every time I am trying to run it a get:

nasm64_asm learning_asm.asm ▦ Programming/assembly 22:13

bash: nasm -f elf64 -o middle_runner.o learning_asm.asm: command not found

bash: ld middle_runner.o -o run_it: command not found

[ble: exit 127]

Tell me what do I do wrong.

https://redd.it/1epufjb
@r_bash
What does peace of mind look like for a shell/Terminal layer software developer /programmer?

Asking for a brother who is building tools to help other shell/Terminal layer programmers. Thank you.

https://redd.it/1eq03uz
@r_bash
Countdown timer demo with bash-boost

A few days back, I answered a question here on how to center colored text in a noscript which was a basic countdown timer.

While it seems simple on its face, I found it to be an interesting use case to explore some of the features of `bash-boost`.

I wrote about the interesting parts of the noscript here. A link to the full noscript is at the bottom of the README.

Hope you may find something useful from this walkthrough to use in your own noscripts. :)

https://redd.it/1eq6k6s
@r_bash
I need 2 MacOS Shell/zsh/bash(idk) noscripts, clean folders up, and paste new files into folders, willing to pay

Hi, I need 2 noscripts:

- a noscript to put all files of a folder into a "used" folder. I have 80 folders where this needs to get done, hence i need a noscript. There may already be a "used" folder, but if it does not exist yet, create it

- a noscript to paste 20 new files into all 30 folders

I found this https://discussions.apple.com/thread/253031808?sortBy=rank but it's not exactly what i need

Can someone help me? I'm willing to pay 🙏 And Yes you can share the noscript publicly, you can also put it on your GitHub of course. So maybe it will help others too

Maybe we should make a small MacOS App out of it? Idk if automator is enough for it. tbh i got 0 experience with automator

I have M1 macbook

Thank you so much!!!!❤️🙏🙏🙏❤️❤️

all folders have the same parent folder & source is in same place in a folder.

But i do the task for different folders and sources so i can’t solve this by hardcoding paths

What I want is a drag&drop solution, or a solution where the finder selection pops up and i have to select the files

I can’t do it by path cuz this is a weekly task with always different paths

https://redd.it/1eq7lih
@r_bash
How to restart a 'man' process?

I'm writing a troff manual, I want a process to watch for changes and compile and open it with 'man'.

But I'm having issues, I'm currently using this noscript :

inotifywait -q -m -e close_write --format %e ./test.man| while read events; do man ./test.man;done

The problem is that since man need to quit before the next change detection starts, I need to know a way to :

1 - watch for file change

2 - open the file using man (even if a man is already running)


Note : I want to replicate how I work with latex and mupdf, since all it takes is to restart a mupdf process is `pkill -HIP mupdf`

https://redd.it/1eqehuy
@r_bash
Is it possible to export a bash function so that it will automatically enable extglob?

I have a bash function that uses some extglob which, if used in a shell with extglob disabled, fails to parse and throws a syntax error.

In the file containing the function source code I include a

shopt -s extglob

before the function is defined so that when the file is sourced extglob is enabled before the function is defined. But, if you export the function you only get the function, not the stuff before it. And any new bash shells will try and source the exported functions on startup.

In practice, this means that if I export my function, any future invocations of `/usr/bin/bash` that dont include `-O extglob` will print an error message to screen. This happens regardless if the bash shell being started is actually calling the exported function. It still runs if that exported function isnt used (since the error is that it cant parse the function), but is annoying nonetheless.

One specific annoyance with this that I use hyperfine to benchmark this function. the way hyperfine bootstraps the shells it runs, you can either use `--shell=bash` and itll use exported functions but wont have extglob, or you can use `--shell='/usr/bin/bash -O extglob'` to get extglob but you lose access to exported functions. You can use the ladder and then source the file defining the function and then run a the function, but then it skews the benchmarking times since you are timing how long it takes to source the function as well as timing the function runtime itself.

***

At any rate, does anyone know a trick so that exported functions that use extglob will parse correctly in a bash shell that doesnt explcitly enable extglob by being spawned via `bash -O extglob [...]`???

https://redd.it/1eqfzag
@r_bash
Formatting and mounting a flash drive via the terminal, not the UI

I'm issuing the following commands to format a 512GB flash drive:

sudo fdisk -l # fetch device ID (/dev/sdc1)

sudo umount /dev/sdc1

sudo mkfs.exfat -n USB-256GB /dev/sdc1

The output from the last command indicates that the flash drive was successfully formatted. How can I mount that device w/o having to select the device in the file explorer? I'd like to accomplish this using only the terminal.

https://redd.it/1eqgrco
@r_bash
argc - Top-tier utility/framework for creating shell noscripts

https://github.com/sigoden/argc

I’m not the author. Whoever it is, they are a bloody legend!

Figured I would share it as it deserves way more love.

https://redd.it/1eqvgj4
@r_bash
How to learn shell noscripting?

I have basic / intermediate knowledge of command line and would like to learn how to use shell noscripting. Are there websites or resources that provide problems that I can try and solve? I am also interested in shell noscripts for HPC so I was wondering what area I should focus on here.

https://redd.it/1erft7a
@r_bash
tmpmail v1.1.5 now supports receiving attachments
https://redd.it/1erzodj
@r_bash
What does - and -- mean in bash?

I've come across noscripts that use - or -- for arguments and it's never really explained what they do. What's it called and what's the usage?

# example using -
curl -fsSL 'some_url/install.sh' | env ENV="${HOME}/.bashrc" bash -

# example using --
command -- arg1 arg2


https://redd.it/1erzyy6
@r_bash
Using read -p to prompt bold variable with ANSI escape codes?

Hi,\
As the noscript, I was wondering if it is possible to do it.\
I've tried 1
var=candy
bold=$(tput bold)
normal=$(tput sgr0)

read -p "IS ${bold}$var${normal} correct? " ans
# assuming answer yes
printf "Your answer is \033[1m%s\033[0m." "$ans"

The output is what I desired, candy and yes are bold.\
I've tried 2
var=candy

read -rep $'Is \033[1m$var\033[0m correct?' ans
printf "Your answer is \033[1m%s\033[0m." "$ans"

It output $var, not candy,\
\
I'd like something similar to second options, that way I can easily make a new line using '\n'. 3\
Is there any better solution? Or better using printf and read separately. Something like
printf "Is \033[1m%s\033[0m correct?" "$var"
read ans
printf "Your answer is \033[1m%s\033[0m." "$ans"

~~I mean read -p is not supported in every shell, maybe it's a good habit to not use -p.~~

https://redd.it/1es3gp5
@r_bash
Configuration in bash?

I have this piece of code in Python:

URLVARIANTS = {
'barstool': {
'base
url': 'mcepl@shell.eng.rdu.redhat.com:publichtml/',
'target
url': 'http://file.rdu.redhat.com/~mcepl/',
'shortenapi': 'https://url.corp.redhat.com/new?'
},
'wotan': {
'base
url': 'wotan:Export/',
'targeturl': 'https://w3.suse.de/~mcepl/'
},
'tmp': {
'base
url': 'fedorapeople.org:publichtml/tmp/',
'target
url': 'https://mcepl.fedorapeople.org/tmp/',
# 'shortenapi': 'http://is.gd/create.php?format=simple&url='
'shorten
api': 'https://da.gd/s?url='
}
}

curconf = URLVARIANTSsite

# now I am using curconf['baseurl'] etc.

How to rewrite it in bash? Yes, I know about https://linuxsimply.com/bash-noscripting-tutorial/array/array-of-arrays/ but the whole is so incredibly finicky and crazy, that I haven’t managed to pull it off (could somebody rewrite this example in the pure sh/bash?). The only alternative I could come up with is to make URL_VARIANTS a string contain JSON object, and then to use jq to separate requested values, but that sounds as a potential PITA as well.

Any thoughts?

https://redd.it/1esg0b3
@r_bash
[error] guys i think i broke bash in a way never before seen
https://redd.it/1etq4eu
@r_bash
how do i alias cowsay?

hello, i would like to take the command "cowsay" and alias so every time i type in "endvideo" into the terminal the cowsay command pops up and spits out

"like comment share and subscribe!"

how would i do this?

thank you

https://redd.it/1etti1j
@r_bash