r_bash – Telegram
Join me



1. I'm working on a new project for WordPress websites that checks which plugins are causing 500 error and turns them off https://github.com/Noam-Alum/wp\_plugins\_checker if someone wants to join me send me DM, an extra pair of hands would be helpful (Note that the project is purely a backend tool since the website is not working... and I wrote it in bash noscripting )
2. feel free to try it and add to the issues tab on github

https://redd.it/136lbxj
@r_bash
Help me understand the possibilities of Bash (best uses, etc)

Little about me and why I'm posting.

Currently studying cyber security and taking a Linux class which is diving a little bit into bash. I have nearly a decade of experience messing with different programming and noscripting languages, mostly from experimenting with web design, game development and some software development, all on a hobbyist level.

I've picked up Bash really fast (obviously by no means on the level of the rest of this subreddit), but my class is coming to an end and I want to see if it's worth continuing learning bash in my free time. It's simple enough understanding the syntax, and I can see some cool tools that I could make with it, but what are the major uses and reasons I should stick with it?

I see things about using Bash for automation, I could see that being useful. I saw a post in this sub about someone writing some back-end code for a web project in bash? Is there any application of this language that could be used for anything GUI oriented? I think of bash as all command line/terminal dirty-work.

Just looking to gain some knowledge on the possibilities of Bash.

TL;DR: College student learning bash, is it worth continuing to learn after my class is over, and what are the best uses for bash noscripting?

https://redd.it/136rgkx
@r_bash
Can Bash replace Perl ?

I don't see many limits on Bash. I wonder if it could replace Perl.

https://redd.it/137ctci
@r_bash
Using variables/functions from one bash file to another

How do I use variables/functions from one file to another file? Pls help.

I was looking for the help on web and all of them recommending source , but source command is executing the File-1 first

https://redd.it/137hrjd
@r_bash
I am on Windows system and trying to chmod +x to a .sh file on VSCODE, git bash terminal. I ran the command, and nothing changed. I read other posts on stack overflow, but I can't understand their solution and explanation. Also, there's no error messages or anything. Just, nothing happens.

note: I am running on my personal laptop so I am the admin. I tried SUDO but got "command not found" instead. This is for a webdev school project btw.

https://redd.it/137swgq
@r_bash
What does % after a variable name do?

I just saw in some legacy noscripts ${vers%} where vers is a version type passed in as an argument in the form of 1.0.1.

I can’t find anything online about it, and in testing it, it doesn’t seem to make a difference if it’s there or not. Any ideas?

https://redd.it/137uxvr
@r_bash
Package version is visible, but package not technically "Installed" from tar.gz.

If I try to extract a pre-compiled package from a tar.gz file to my system's /usr/local/bin and lib, I get the version of the package by doing <package_name> --version.


But I do not see it in the installed list when I do dpkg --list.
dpkg --status <package> says package not installed.

Am I missing something? Reminder that the tar.gz is pre-compiled.

https://redd.it/137xn0d
@r_bash
Need help debugging a noscript that runs a command given by parameter and stores stdout and stderr in variables

I am trying to make a function that will execute a command, store stdout and stderr in variables, check if the command errored or not, and then do something for each case. In this example I'm just echoing "success" or "failure".

This is the current state of the noscript:

#! /bin/bash

execute_with_error_handling() {
step = $1
shift

# Execute the command passed as argument, store stdout and stderr in variables and capture the exit status
exec 3>&1 4>&2
output=$( { "$@" 2>&4 1>&3; echo $? > exit_status.tmp; } 2>&1 )
exec 3>&- 4>&-

# Separate stdout, stderr, and exit_status
stdout=$(echo "${output}" | grep -v '^stderr:')
stderr=$(echo "${output}" | grep '^stderr:' | sed 's/^stderr: //')
exit_status=$(cat exit_status.tmp && rm exit_status.tmp)

if [ "${exit_status}" -eq 0 ]; then
echo "success"
echo $stdout
echo $stderr
else
echo "fail"
echo $stdout
echo $stderr
fi
}

execute_with_error_handling "something that works" echo "hello world"
execute_with_error_handling "something that fails" false


https://redd.it/137zryq
@r_bash
Comparing Float in if statement

I ran into a problem while comparing python version in my noscript, if anyone is familiar with this error please help

My noscript
#!/bin/bash
PYTHON="/usr/bin/python3"
PYTHON_VERSION=$(${PYTHON} --version | grep -Po "(\d+\.)[^ .]+")

if [[ $PYTHON_VERSION -ge 3.11 ]] ; then
echo "python - ok"
elif [[ $PYTHON_VERSION -lt 3.11 ]] ; then
echo "lowest version"
fi

Error i am getting

./2.bash: line 5: [: 3.11: syntax error: invalid arithmetic operator (error token is ".11")**

**./2.bash: line 7: [[: 3.11: syntax error: invalid arithmetic operator (error token is ".11")**

[https://redd.it/138it52

@r_bash
Had a suit made, they asked if I wanted anything embroidered...
https://redd.it/138wgld
@r_bash
How to delete the last blank line in a .txt file?

Hi;
I’m working on a noscript that’s supposed to remove the white spaces and empty lines from a txt file. On a Macbook.
So far, I’ve been able to do that with sed an a regex pattern.
The issue is that it keeps the last blank line in place.
For example, once edited, I’d like my document to show:

- x
- y
- z


and stop there.
Instead, I’m getting:

- x
- y
- z
[blank line here]


Would you know why that happens?
I’ve tried many variations of suggested stackoverflow “sed” solutions, but none of them has been helpful so far.

https://redd.it/1394kj1
@r_bash
Replacing multiple spaces

Hi everyone.
So i have been trying to replace multiple (>2) whitspaces in a file with two dashes. --

I am trying this sed command. But it doesn't work.

 sed`s/[ ][ ]*/\-\-/g` 


Can anyone help?

Example

 Hi             Lokesh kumar             maxi 


Expected out

Hi--Lokesh kumar--maxi

https://redd.it/139e3dr
@r_bash
Finding the current cursor position in bash

The call for getting printed current row and col on screen are easy,(echo -e "^]]6n"), but it is harder to stuff the values into variables, so you can actually use them.

So, having other things to spend my time on, after a little while, I came by these two links, that seem okay for terminals in linux.

This way uses the ncurses tput command, which you should install anyways for this. Stack-exchange

The answer by Dennis Williamson in Stack Overlow post is more finicky but uses only bash, and, returns correct row/col positions for further use with ncurses.

https://redd.it/139hvju
@r_bash
assign fields parsed via awk; delimiter

Bash 5.1 on Linux Mint 21.1

i need to decode filenames always following this structure: Part1_Part2_Part3.wav
The delimiter is an underscore.

With the code field=$(echo "$file" | awk 'BEGIN{FS="_"} {print $3}' )" i only be successful, if there is an underscore behind Part3. Right now i add an underscore to all the files for the code to work. Is there another way?

https://redd.it/139kbnn
@r_bash
Creating a new variable from using grep on another variable

I am writing a noscript which enters a task into the taskwarrior app. The app response is "Created task number 114" (or any other number for that matter). I can catch that in a variable.

Now I want to use only the number (114) to use a a variable later (I can create a new task which is declared as dependent on task 114). According to what I have found already, this should work, but unfortunately does not:

Tasknumber=$(echo "$Response" | grep '[0-9\] {1,4}$')

when I echo $Tasknumber, it is empty.

Any tipps? Thank you

https://redd.it/139v7pb
@r_bash
Are fractional seconds in HISTTIMEFORMAT possible?

As the noscript says I'm interested whether or not it's possible to specify fractional seconds.

I already tried:

HISTTIMEFORMAT='%.3s '
HISTTIMEFORMAT='%s.%N '
HISTTIMEFORMAT='%s.%f '


It appears that it's not possible.

And I find that odd and dissatisfying, because I don't get "the issue" as why not.

That man page only says it must be in strftime format. GNU date accepts %N and bash's HISTTIMEFORMAT doesn't.

https://redd.it/139wiy9
@r_bash
How do i create a large text file crawler which crawls and finds keywords and condition quicker than usual grep awk considering the log file size as 10-20gb .gz file of text. Is there a way?



https://redd.it/13adoww
@r_bash
Is there a way to use grep with wildcards?

Example

$file ./-* | grep "ASCII text" -w

./-file07: ASCII text
./-file09: Non-ISO extended-ASCII text, with no line terminators

I just want ./-file07. In a sql query it would look like

Select file from files where name like “ASCII%”

This would only return the files that names began with ASCII

Im assuming there is a way to accomplish this right?? Thanks

https://redd.it/13b2pmg
@r_bash