git webhook that tells you to rerun deps install, whatever the dev stack on git pull/checkout in bash.
https://github.com/Sanix-Darker/ii
https://redd.it/1e9slz3
@r_bash
https://github.com/Sanix-Darker/ii
https://redd.it/1e9slz3
@r_bash
GitHub
GitHub - Sanix-Darker/ii: Check if you need to run `xxx install` to sync your dependencies whatever the env as a simple .git/hooks.
Check if you need to run `xxx install` to sync your dependencies whatever the env as a simple .git/hooks. - Sanix-Darker/ii
open new gnome-terminal, run commands, and kill later
I'm trying to make a bash noscript to easily manage video game servers (e.g. Minecraft) from the command line. Here's what I have currently, which works well for starting a server specified by
cd "$1"
case "$2" in
"run")
gnome-terminal --noscript="Minecraft: Java Edition server" -- /bin/sh -c 'gnome-terminal --noscript="Playit.gg" --tab -- /bin/bash -c "playit"; java -Xms2G -Xmx4G -jar server.jar nogui';;
What I want to do is be able to later use "stop" as
Additionally, I think that would help for running two servers at once, since I could hopefully do something like kill the server.jar for a given server, then check whether any others are running and, only if I find that none are, kill
https://redd.it/1eaornn
@r_bash
I'm trying to make a bash noscript to easily manage video game servers (e.g. Minecraft) from the command line. Here's what I have currently, which works well for starting a server specified by
$1:cd "$1"
case "$2" in
"run")
gnome-terminal --noscript="Minecraft: Java Edition server" -- /bin/sh -c 'gnome-terminal --noscript="Playit.gg" --tab -- /bin/bash -c "playit"; java -Xms2G -Xmx4G -jar server.jar nogui';;
What I want to do is be able to later use "stop" as
$2 and kill those processes that "run" starts. Is there a way to assign the new gnome-terminal to a variable to interact with it? That would make killing both processes at once easier (I think), and make the noscript easier to read.Additionally, I think that would help for running two servers at once, since I could hopefully do something like kill the server.jar for a given server, then check whether any others are running and, only if I find that none are, kill
playit.https://redd.it/1eaornn
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
Is it possible to debug a bash noscript using a debugger in attached mode? For debugging noscripts on the host machine and noscripts inside a docker container?
I was able to setup a debugger using a launch mode using Visual Studio Code with the Bash Debug extension. Is it possible to setup the debugger in VSCode to be able to debug a bash noscript using a attach debug mode?
For debugging noscripts on the host machine and noscripts inside a docker container?
https://redd.it/1easa9f
@r_bash
I was able to setup a debugger using a launch mode using Visual Studio Code with the Bash Debug extension. Is it possible to setup the debugger in VSCode to be able to debug a bash noscript using a attach debug mode?
For debugging noscripts on the host machine and noscripts inside a docker container?
https://redd.it/1easa9f
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
Get all arguments from argument number X
In this example below...
It will print out the following...
How would I get it to print out this instead, to not print out "a b c". Is there a simple way to do this without creating a new variable and filtering out the first three arguments from the
https://redd.it/1earbab
@r_bash
In this example below...
myfunction() {
echo $1
echo $2
echo $3
echo $*
}
It will print out the following...
$ myfunction a b c d e f g h
a
b
c
a b c d e f g h
How would I get it to print out this instead, to not print out "a b c". Is there a simple way to do this without creating a new variable and filtering out the first three arguments from the
$* variable?$ myfunction a b c d e f g h
a
b
c
d e f g h
https://redd.it/1earbab
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
Bash Question
Hello!
My question is the following, I want to create a function inside a noscript to check if the user that executes the noscript has the UID 0, not necessarily the user with UID 0 must be called root, so I prefer to do it taking the UID as a reference instead of the string ‘root’.
I have read several sources and I have seen that it is more advisable to use
So I understand that an approach like the following would be valid, right?
checkUID()
{
[ -n $EUID ] && (( $EUID )) && return 1
}
Would it be a bit more robust if done as follows?
checkUID()
{
[ -n $EUID ] && (( $EUID )) && return 1
command -V id &> /dev/null && (( $( id -u ) )) && return 1
}
I would like you to tell me what would be the most robust or recommended way to perform such a check.
If it is not too much trouble, I would like you to tell me also something similar to check if the shell from which the noscript is executed is a bash shell or not.
I understand that it would be something like this, right?
checkUID()
{
[ $BASH != *bash$ ] && return 1
# OR
local shell=$( ps -p $$ -o 'comm=' )
[[ $shell != bash ]] && return 1
}
As for the other case I mentioned, is there a better way to do it?
The truth is that another doubt that arises when performing checks like the previous ones is the following, if you are really checking if the content of a variable is equal or different to a number or a string, would it be necessary to perform the check previously using
While I'm at it, another question I've been having for quite some time, would it be better to use
Would it be advisable to use the first variant as it seems more readable or is it more convenient to use the second one?
Sorry for so many questions, but instead of creating several threads, I'll take advantage of this and leave all my current doubts in one thread
Thank you very much in advance 😊
https://redd.it/1ebavq3
@r_bash
Hello!
My question is the following, I want to create a function inside a noscript to check if the user that executes the noscript has the UID 0, not necessarily the user with UID 0 must be called root, so I prefer to do it taking the UID as a reference instead of the string ‘root’.
I have read several sources and I have seen that it is more advisable to use
$EUID instead of $UID, so it takes into account cases such as SETUID assignment or others.So I understand that an approach like the following would be valid, right?
checkUID()
{
[ -n $EUID ] && (( $EUID )) && return 1
}
Would it be a bit more robust if done as follows?
checkUID()
{
[ -n $EUID ] && (( $EUID )) && return 1
command -V id &> /dev/null && (( $( id -u ) )) && return 1
}
I would like you to tell me what would be the most robust or recommended way to perform such a check.
If it is not too much trouble, I would like you to tell me also something similar to check if the shell from which the noscript is executed is a bash shell or not.
I understand that it would be something like this, right?
checkUID()
{
[ $BASH != *bash$ ] && return 1
# OR
local shell=$( ps -p $$ -o 'comm=' )
[[ $shell != bash ]] && return 1
}
As for the other case I mentioned, is there a better way to do it?
The truth is that another doubt that arises when performing checks like the previous ones is the following, if you are really checking if the content of a variable is equal or different to a number or a string, would it be necessary to perform the check previously using
[[ -n $var ]] or [[ $var ]] Or could you just proceed with the check as [[ $var == ‘something’ ]] and in case the variable is empty, then the status code of the latter check would be wrong?While I'm at it, another question I've been having for quite some time, would it be better to use
[[ -n $var ]] [[ -z $var ]] or [[ $var ]] ! [[ $var ]]Would it be advisable to use the first variant as it seems more readable or is it more convenient to use the second one?
Sorry for so many questions, but instead of creating several threads, I'll take advantage of this and leave all my current doubts in one thread
Thank you very much in advance 😊
https://redd.it/1ebavq3
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
Get list of keys in plist file
I want to read the content of Plist file and get a listing of all entries like this:
Apple
Apple/iPhone
Apple/MacBook
Samsung
Samsung/Galaxy
Samsung/Galaxy/Tab
https://redd.it/1ecrh9k
@r_bash
I want to read the content of Plist file and get a listing of all entries like this:
Apple
Apple/iPhone
Apple/MacBook
Samsung
Samsung/Galaxy
Samsung/Galaxy/Tab
https://redd.it/1ecrh9k
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
Built-ins, distribution, and bootstrapping
## Background:
Bash seems nearly as ubiquitous as it gets (to me, at least), and I see so many examples of people doing neat things with it (and not just in their personal dotfiles; some examples here https://github.com/awesome-lists/awesome-bash)
## Questions:
1. Why doesn't there seem to be much effort or talk about developing more built-ins? (Blog on built-ins I found intriguing yesterday: https://blog.dario-hamidi.de/a/build-a-bash-builtin)
2. I've seen a lot of custom bootstrap/setup noscripts, and neat repos, but is there not any kind of more centralized way of sharing/searching/downloading bash noscripts/libs/utils? Like pip for python? Maybe I'm missing something, but there seems to be a lot of duplicated effort out there for reasons that don't always seem clear to me given how long bash has been out there, and how interested so many seem to be in using it.
3. I find myself unsure how best to approach sharing bash support in an environment, like extra libs, project setup utilities, etc. If you care to take the time, I'm curious what people think of bootstrap/setup noscripts, using curl/wget, or something like the makefile in this repo: https://github.com/jmcantrell/bashful. I'm open to anything people want to say/share, I'm just trying to understand.
___
### Personal Context:
(and very possibly irrelevant)
I've used Linux for years doing controls work for particle accelerators, but haven't had a real reason to really dive into bash until these last few months; after realizing that it seemed like a good fit for helping me address certain site specific issues at a new lab I just started at in the last year.
I've been learning by trying to write my own bash libraries to support bash noscripting and drafting/testing setup noscripts. All while thoroughly investigating all questions that pop up in my head along the way, or which shellcheck makes me curious about, digging through all of the examples I can find, comparing coding styles and common patterns, trying to incorporate things I see and.. just generally trying to get as much as I can out of the opportunity presented by my genuine interest in something I was weak at and which represents a good value-add at work.
From everything I've seen so far, r/bash seems like a great community that's already proven helpful to me. Whether you respond to this or not, thanks for this.
Cheers!
https://redd.it/1ecvoeg
@r_bash
## Background:
Bash seems nearly as ubiquitous as it gets (to me, at least), and I see so many examples of people doing neat things with it (and not just in their personal dotfiles; some examples here https://github.com/awesome-lists/awesome-bash)
## Questions:
1. Why doesn't there seem to be much effort or talk about developing more built-ins? (Blog on built-ins I found intriguing yesterday: https://blog.dario-hamidi.de/a/build-a-bash-builtin)
2. I've seen a lot of custom bootstrap/setup noscripts, and neat repos, but is there not any kind of more centralized way of sharing/searching/downloading bash noscripts/libs/utils? Like pip for python? Maybe I'm missing something, but there seems to be a lot of duplicated effort out there for reasons that don't always seem clear to me given how long bash has been out there, and how interested so many seem to be in using it.
3. I find myself unsure how best to approach sharing bash support in an environment, like extra libs, project setup utilities, etc. If you care to take the time, I'm curious what people think of bootstrap/setup noscripts, using curl/wget, or something like the makefile in this repo: https://github.com/jmcantrell/bashful. I'm open to anything people want to say/share, I'm just trying to understand.
___
### Personal Context:
(and very possibly irrelevant)
I've used Linux for years doing controls work for particle accelerators, but haven't had a real reason to really dive into bash until these last few months; after realizing that it seemed like a good fit for helping me address certain site specific issues at a new lab I just started at in the last year.
I've been learning by trying to write my own bash libraries to support bash noscripting and drafting/testing setup noscripts. All while thoroughly investigating all questions that pop up in my head along the way, or which shellcheck makes me curious about, digging through all of the examples I can find, comparing coding styles and common patterns, trying to incorporate things I see and.. just generally trying to get as much as I can out of the opportunity presented by my genuine interest in something I was weak at and which represents a good value-add at work.
From everything I've seen so far, r/bash seems like a great community that's already proven helpful to me. Whether you respond to this or not, thanks for this.
Cheers!
https://redd.it/1ecvoeg
@r_bash
GitHub
GitHub - awesome-lists/awesome-bash: A curated list of delightful Bash noscripts and resources.
A curated list of delightful Bash noscripts and resources. - awesome-lists/awesome-bash
Script to get lat/lon
I'm trying to figure out how to get the location (latitude/longitude) from the find my device web site. I'm using Linux on a Chromebook which does not have GPS. On the CB I can log into Find My Device to find my phone, which is next to the CB, and therefore get the lat/lon of my CB.
I think I can use curl (???) to get the find my device web page and somehow find the lat/lon by grepping download.
Then I'll feed to coordinates to navigation software - opencpn.
My noscript knowledge is pretty rusty, so any advice appreciated.
Is this a realistic project?
https://redd.it/1ed1s46
@r_bash
I'm trying to figure out how to get the location (latitude/longitude) from the find my device web site. I'm using Linux on a Chromebook which does not have GPS. On the CB I can log into Find My Device to find my phone, which is next to the CB, and therefore get the lat/lon of my CB.
I think I can use curl (???) to get the find my device web page and somehow find the lat/lon by grepping download.
Then I'll feed to coordinates to navigation software - opencpn.
My noscript knowledge is pretty rusty, so any advice appreciated.
Is this a realistic project?
https://redd.it/1ed1s46
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
How to recursively copy, maintaining dir structure, with intermediate processing
I have a bunch of albums on an external hard drive that I would like to copy to an SD card that has limited storage capacity while maintaining the directory structure.
Some of the albums are in MP3 format, and some are FLAC. To this end, my thought is to simply copy the existing MP3s as-is and process the FLAC audio, creating smaller MP3s as needed, but I don't want to keep the newly-generated MP3s at all, whether on my laptop or on the external hard drive. I just want to create them to be sent to the SD card.
Is this feasible with Bash? If so, how? Otherwise, should I be looking at doing this in a different language, like Python? Or should I just store the MP3s?
https://redd.it/1edj8qp
@r_bash
I have a bunch of albums on an external hard drive that I would like to copy to an SD card that has limited storage capacity while maintaining the directory structure.
Some of the albums are in MP3 format, and some are FLAC. To this end, my thought is to simply copy the existing MP3s as-is and process the FLAC audio, creating smaller MP3s as needed, but I don't want to keep the newly-generated MP3s at all, whether on my laptop or on the external hard drive. I just want to create them to be sent to the SD card.
Is this feasible with Bash? If so, how? Otherwise, should I be looking at doing this in a different language, like Python? Or should I just store the MP3s?
https://redd.it/1edj8qp
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
Coloring issue with 3rd party application
Hey guys,
I'm trying to create a log filter to one of my bash apps, but I've came across an annoying issue, which I cannot fix with my knowledge sadly, so I ask for your kindness and help. <3
So basically, my code's important section for this aspect looks like this:
# Replace Startup Variables
MODIFIEDSTARTUP=$(eval echo $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g'))
logmessage "Starting server: ${MODIFIEDSTARTUP}" "running"
# Run the Server
eval "${MODIFIEDSTARTUP}" 2>&1 | while IFS= read -r line; do
if [ "$line" =~ "blockable_text_here" ]; then
logblockedmessage "$line"
else
echo -e "$line"
fi
done
This works perfectly as I see the blocked messages (it's just for debug), but sadly the echo changes the 3rd party application's message colors to white. I tried to use printf, echo and awk, but sadly all output looks like this now for example:
https://preview.redd.it/h0jpszfdf4fd1.png?width=1590&format=png&auto=webp&s=5bdb0bdffe61602bd457fdfd04b1fc7dfd8d3c18
the expected original output looks like this:
https://preview.redd.it/ddz88wvlf4fd1.png?width=1196&format=png&auto=webp&s=86327e228e9730f72ab28e87338c999cdeb132e3
I would really appreciate that if you could guide me to fix this annoying issue. Of course the code work as intended, but the colors required for this service sadly.
Appreciate your time for reading this, even if you cannot help :(
EDIT: The working colouring is achieved with this by default:
# Replace Startup Variables
MODIFIEDSTARTUP=`eval echo $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')`
logmessage ":/home/container$ ${MODIFIEDSTARTUP}" "running"
# Run the Server
eval ${MODIFIEDSTARTUP}
https://redd.it/1edpts0
@r_bash
Hey guys,
I'm trying to create a log filter to one of my bash apps, but I've came across an annoying issue, which I cannot fix with my knowledge sadly, so I ask for your kindness and help. <3
So basically, my code's important section for this aspect looks like this:
# Replace Startup Variables
MODIFIEDSTARTUP=$(eval echo $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g'))
logmessage "Starting server: ${MODIFIEDSTARTUP}" "running"
# Run the Server
eval "${MODIFIEDSTARTUP}" 2>&1 | while IFS= read -r line; do
if [ "$line" =~ "blockable_text_here" ]; then
logblockedmessage "$line"
else
echo -e "$line"
fi
done
This works perfectly as I see the blocked messages (it's just for debug), but sadly the echo changes the 3rd party application's message colors to white. I tried to use printf, echo and awk, but sadly all output looks like this now for example:
https://preview.redd.it/h0jpszfdf4fd1.png?width=1590&format=png&auto=webp&s=5bdb0bdffe61602bd457fdfd04b1fc7dfd8d3c18
the expected original output looks like this:
https://preview.redd.it/ddz88wvlf4fd1.png?width=1196&format=png&auto=webp&s=86327e228e9730f72ab28e87338c999cdeb132e3
I would really appreciate that if you could guide me to fix this annoying issue. Of course the code work as intended, but the colors required for this service sadly.
Appreciate your time for reading this, even if you cannot help :(
EDIT: The working colouring is achieved with this by default:
# Replace Startup Variables
MODIFIEDSTARTUP=`eval echo $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')`
logmessage ":/home/container$ ${MODIFIEDSTARTUP}" "running"
# Run the Server
eval ${MODIFIEDSTARTUP}
https://redd.it/1edpts0
@r_bash
Du vs df how they work and why df is so much faster
If I do du -sh / it’s very slow but if I do df -h / it’s able to return immediately. Can anyone provide technical explanation of how these different commands differ at the lower level allowing df to be so much faster.
I’m guessing du must be reading all the files recursively or something but how does df manage?
https://redd.it/1edtxsc
@r_bash
If I do du -sh / it’s very slow but if I do df -h / it’s able to return immediately. Can anyone provide technical explanation of how these different commands differ at the lower level allowing df to be so much faster.
I’m guessing du must be reading all the files recursively or something but how does df manage?
https://redd.it/1edtxsc
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
How do you keep bash notes and oneliners to create a personal wiki?
I started writing down my bash notes 3 years ago on text files. Then i realized i need a structured approach. 6 months ago i switched to Markdown and Joplin and started linking related pages.
As i progress on shell, i needed a knowledge wiki including man pages, command examples, notes, questions and see also section. Closest for me for now is Logseq.
How do you keep your bash notes?
Thanks!
https://redd.it/1eeamna
@r_bash
I started writing down my bash notes 3 years ago on text files. Then i realized i need a structured approach. 6 months ago i switched to Markdown and Joplin and started linking related pages.
As i progress on shell, i needed a knowledge wiki including man pages, command examples, notes, questions and see also section. Closest for me for now is Logseq.
How do you keep your bash notes?
Thanks!
https://redd.it/1eeamna
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
Good book for a beginner to learn for bash
So I’ve got the very basics from a Udemy course on Bash, but I’d like a pretty comprehensive book that can assist me on my learning journey.
Any recommendations? Tks
https://redd.it/1eeiohr
@r_bash
So I’ve got the very basics from a Udemy course on Bash, but I’d like a pretty comprehensive book that can assist me on my learning journey.
Any recommendations? Tks
https://redd.it/1eeiohr
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
Update noscript
I am trying to learn bash, and I wanted to make a noscript that would automatically update my system, preferably on startup. It looks like this. So far, I managed to make it run on startup, it makes a new file with correct name and that's basically it. It does not update anything or put any kind of output to file. Can you tell me what did I do wrong, or where can I find some info about it?
#!/bin/bash
# Script for automaticly updating arch linux and dumping all logs to log file.
sleep 10
RED='\0330;31m'
NC='\033[0m'
CURRENT_TIME=$(date +%d-%m-%Y-%H:%M-%S)
STRING_UPDATE="_update"
FILE_NAME="${CURRENT_TIME}${STRING_UPDATE}"
NAME=$(grep -E '^(VERSION|NAME)=' /etc/os-release)
if [ "$NAME" = "Garuda Linux" ; then
garuda-update --noconfirm >>"/home/konbor/noscriptlogs/update/$FILENAME.txt"
else
sudo pacman -Syu --noconfirm >>"/home/konbor/noscriptlogs/update/$FILENAME.txt"
fi
# /dev/null 2>&1 to skip output
UPDATE=$?
if $UPDATE -eq 1 ; then
echo "${RED}Udate failed log saved in ~/noscriptlogs/update/ as $FILENAME.txt${NC}"
bat ~/noscriptlogs/update/"$FILENAME.txt"
else
echo "Update complete"
bat ~/noscriptlogs/update/"$FILENAME.txt"
fi
https://redd.it/1eet0ms
@r_bash
I am trying to learn bash, and I wanted to make a noscript that would automatically update my system, preferably on startup. It looks like this. So far, I managed to make it run on startup, it makes a new file with correct name and that's basically it. It does not update anything or put any kind of output to file. Can you tell me what did I do wrong, or where can I find some info about it?
#!/bin/bash
# Script for automaticly updating arch linux and dumping all logs to log file.
sleep 10
RED='\0330;31m'
NC='\033[0m'
CURRENT_TIME=$(date +%d-%m-%Y-%H:%M-%S)
STRING_UPDATE="_update"
FILE_NAME="${CURRENT_TIME}${STRING_UPDATE}"
NAME=$(grep -E '^(VERSION|NAME)=' /etc/os-release)
if [ "$NAME" = "Garuda Linux" ; then
garuda-update --noconfirm >>"/home/konbor/noscriptlogs/update/$FILENAME.txt"
else
sudo pacman -Syu --noconfirm >>"/home/konbor/noscriptlogs/update/$FILENAME.txt"
fi
# /dev/null 2>&1 to skip output
UPDATE=$?
if $UPDATE -eq 1 ; then
echo "${RED}Udate failed log saved in ~/noscriptlogs/update/ as $FILENAME.txt${NC}"
bat ~/noscriptlogs/update/"$FILENAME.txt"
else
echo "Update complete"
bat ~/noscriptlogs/update/"$FILENAME.txt"
fi
https://redd.it/1eet0ms
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
Help!!!! I’m in school learning bash my professor won’t help!!!
Hello fellow bashers,
I have a few assignments left before my final an I’m doin horrible my professor are non-existent and on vacation 😡 during class. I have no guidance no one to help me and this is my last class before I graduate.
Can anyone tell me how: I can view a txt file from a folder
I tried catnames.txt
Echo $”$”
And it says doesn’t show any record of file and it clearly is in my c drive and my documents and download folder and I can see the names if I click on them.
Edit: how to view a .txt document in bash
Example: dog names.txt
Catnames.txt
https://redd.it/1efarl8
@r_bash
Hello fellow bashers,
I have a few assignments left before my final an I’m doin horrible my professor are non-existent and on vacation 😡 during class. I have no guidance no one to help me and this is my last class before I graduate.
Can anyone tell me how: I can view a txt file from a folder
I tried catnames.txt
Echo $”$”
And it says doesn’t show any record of file and it clearly is in my c drive and my documents and download folder and I can see the names if I click on them.
Edit: how to view a .txt document in bash
Example: dog names.txt
Catnames.txt
https://redd.it/1efarl8
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
I feel so stupid, just found out something about pushd, and not something obscure.
I just learned that pushd swap the top two directory in the stack and that pushd +n/-n rotate the stack. Frankly I felt that the directory stacks command were less useful than cd - .
I thought you could only change to a directory in the stack with popd but it removed a directory from the stack which would kind of make the whole thing a lot less useful. I frankly though dirs, pushd, popd were only useful in edge cases I wasn't knowledgeable enough to imagine.
Now I'm going to alias dirs to dirs -v, I wonder why it's not its default behaviour but I guess I might find out.
https://redd.it/1efxxgu
@r_bash
I just learned that pushd swap the top two directory in the stack and that pushd +n/-n rotate the stack. Frankly I felt that the directory stacks command were less useful than cd - .
I thought you could only change to a directory in the stack with popd but it removed a directory from the stack which would kind of make the whole thing a lot less useful. I frankly though dirs, pushd, popd were only useful in edge cases I wasn't knowledgeable enough to imagine.
Now I'm going to alias dirs to dirs -v, I wonder why it's not its default behaviour but I guess I might find out.
https://redd.it/1efxxgu
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
How to compare keys of two json documents?
As the noscript indicates I'd like to get a diff of the keys (and only the keys, not values) of two json documents. Anyone here who have an idea about how to do so?
https://redd.it/1eg5ac6
@r_bash
As the noscript indicates I'd like to get a diff of the keys (and only the keys, not values) of two json documents. Anyone here who have an idea about how to do so?
https://redd.it/1eg5ac6
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community
Triple nest quotes, or open gnome-terminal window and execute command later?
I'm trying to make a Bash noscript that can open Minecraft servers. So far I have this working, which makes a screen for playit.gg and another for the server I'm running in a new gnome-terminal window:
if ! screen -list | grep -q "serversminecraftplayit" ;
then
screen -d -m -S "serversminecraftplayit"
fi
SERVER=$(basename "$1")
SCREEN="serversminecraft"$SERVER
if ! screen -list | grep -q $SCREEN ;
then
screen -d -m -S $SCREEN
fi
gnome-terminal -- /bin/bash -c "gnome-terminal --tab --noscript=playit.gg -- /bin/bash -c 'screen -r serversminecraftplayit'; gnome-terminal --tab --noscript=$SERVER -- /bin/bash -c 'screen -r $SCREEN'";;
But for this to work as a control panel, it needs to open a tab for each server that's currently running. One way to do that would be to add another gnome-terminal call to that last part for each running server, but to do that, I'd need a third layer of quotes so I can assign the whole last command to a variable and add calls for each server. Something like (pretending
COMMAND="gnome-terminal -- /bin/bash -c ^gnome-terminal --tab --noscript=playit.gg -- /bin/bash -c 'screen -r serversminecraftplayit';^"
COMMAND=$COMMAND" gnome-terminal --tab --noscript=$SERVER -- /bin/bash -c 'screen -r $SCREEN'"
#this would be a loop if I got it working to check for all running server screens
$COMMAND;;
The other, and probably more sensible, way to do this would be to figure out how to use either gnome-terminal or screen to open a new window, then open more screens in tabs of that same window and attach screens to them. Does anyone know how I might do either of these?
https://redd.it/1egamw2
@r_bash
I'm trying to make a Bash noscript that can open Minecraft servers. So far I have this working, which makes a screen for playit.gg and another for the server I'm running in a new gnome-terminal window:
if ! screen -list | grep -q "serversminecraftplayit" ;
then
screen -d -m -S "serversminecraftplayit"
fi
SERVER=$(basename "$1")
SCREEN="serversminecraft"$SERVER
if ! screen -list | grep -q $SCREEN ;
then
screen -d -m -S $SCREEN
fi
gnome-terminal -- /bin/bash -c "gnome-terminal --tab --noscript=playit.gg -- /bin/bash -c 'screen -r serversminecraftplayit'; gnome-terminal --tab --noscript=$SERVER -- /bin/bash -c 'screen -r $SCREEN'";;
But for this to work as a control panel, it needs to open a tab for each server that's currently running. One way to do that would be to add another gnome-terminal call to that last part for each running server, but to do that, I'd need a third layer of quotes so I can assign the whole last command to a variable and add calls for each server. Something like (pretending
^ is a triple-nested quote):COMMAND="gnome-terminal -- /bin/bash -c ^gnome-terminal --tab --noscript=playit.gg -- /bin/bash -c 'screen -r serversminecraftplayit';^"
COMMAND=$COMMAND" gnome-terminal --tab --noscript=$SERVER -- /bin/bash -c 'screen -r $SCREEN'"
#this would be a loop if I got it working to check for all running server screens
$COMMAND;;
The other, and probably more sensible, way to do this would be to figure out how to use either gnome-terminal or screen to open a new window, then open more screens in tabs of that same window and attach screens to them. Does anyone know how I might do either of these?
https://redd.it/1egamw2
@r_bash
Reddit
From the bash community on Reddit
Explore this post and more from the bash community