bash help: open the installed text editor
Hi, fairly new to bash here. need to open a plaintext file depending upon the installed editor.
if gedit is installed - open gedit, otherwise open the available editor, e.g. xed
which of the following would be the best practice (for the .bash_aliases file)
if -f /usr/bin/xed ; then
alias gedit="xed"
fi
or
if command -v xed &> /dev/null
then
alias gedit="xed"
fi
or better- open among the first available editor ("gedit" or "xed" or leafpad ..)
any room for improvements ? thanks (System is Linux mint cinnamon)
https://redd.it/wo7jr3
@r_bash
Hi, fairly new to bash here. need to open a plaintext file depending upon the installed editor.
if gedit is installed - open gedit, otherwise open the available editor, e.g. xed
which of the following would be the best practice (for the .bash_aliases file)
if -f /usr/bin/xed ; then
alias gedit="xed"
fi
or
if command -v xed &> /dev/null
then
alias gedit="xed"
fi
or better- open among the first available editor ("gedit" or "xed" or leafpad ..)
any room for improvements ? thanks (System is Linux mint cinnamon)
https://redd.it/wo7jr3
@r_bash
reddit
bash help: open the installed text editor
Hi, fairly new to bash here. need to open a plaintext file depending upon the installed editor. if gedit is installed - open gedit, otherwise...
output hex data from xattr to create icns file
I'm trying to extract the icon from an xattr of a file. Using xattr to get the "com.apple.ResourceFork" in hex format i use:
xattr -px com.apple.ResourceFork file
and save the output to a variable
var="$(xattr -px com.apple.ResourceFork file)"
then using variable expansion i remove the first bytes until i reach 69 (icns magic number is 69 63 6E 73)
var=${var#*69 63 6E 73}
next i output the variable and append "69 63 6E 73" to the beginning to restore the magic number.
echo "69 63 6E 73$var" > output.txt
if i take the hex data from the output.txt and insert it into a hexeditor to save it then it works and the .icns is created.
i want to do this programmatically in bash/zsh without having to save it manually.
tried using
touch icon.icns
to create an empty file then
echo "69 63 6E 73$var" > icon.icns
just transforms the output file into an ASCII file.
i'm not stuck to my method, any working method is acceptable to me.
​
Edit: ive posted the same question on [stackoverflow](https://stackoverflow.com/questions/73354927/output-hex-data-from-xattr-to-create-icns-file) and including the link here for future users.
https://redd.it/wogoce
@r_bash
I'm trying to extract the icon from an xattr of a file. Using xattr to get the "com.apple.ResourceFork" in hex format i use:
xattr -px com.apple.ResourceFork file
and save the output to a variable
var="$(xattr -px com.apple.ResourceFork file)"
then using variable expansion i remove the first bytes until i reach 69 (icns magic number is 69 63 6E 73)
var=${var#*69 63 6E 73}
next i output the variable and append "69 63 6E 73" to the beginning to restore the magic number.
echo "69 63 6E 73$var" > output.txt
if i take the hex data from the output.txt and insert it into a hexeditor to save it then it works and the .icns is created.
i want to do this programmatically in bash/zsh without having to save it manually.
tried using
touch icon.icns
to create an empty file then
echo "69 63 6E 73$var" > icon.icns
just transforms the output file into an ASCII file.
i'm not stuck to my method, any working method is acceptable to me.
​
Edit: ive posted the same question on [stackoverflow](https://stackoverflow.com/questions/73354927/output-hex-data-from-xattr-to-create-icns-file) and including the link here for future users.
https://redd.it/wogoce
@r_bash
Stack Overflow
output hex data from xattr to create icns file
I'm trying to extract the icon from an xattr of a file.
Using xattr to get the "com.apple.ResourceFork" in hex format i use:
xattr -px com.apple.ResourceFork file
and save the output to a
Using xattr to get the "com.apple.ResourceFork" in hex format i use:
xattr -px com.apple.ResourceFork file
and save the output to a
BASH programming video: user input, looping and text splitting with IFS/read
https://www.youtube.com/watch?v=baN8_IscVSY
https://redd.it/wq284v
@r_bash
https://www.youtube.com/watch?v=baN8_IscVSY
https://redd.it/wq284v
@r_bash
YouTube
Programming BASH #2
Continuing our journey into BASH programming, we'll handle user input, loop through data in different ways and make use of BASH's powerful built-in text splitting feature.
This episode covers:
- outputting text using echo and printf
- handling user input…
This episode covers:
- outputting text using echo and printf
- handling user input…
Running Script As Other User - Inside Script
I have a bash noscript that I wrote that is designed to be run as a user, but that will be executed as root (on a Mac via MDM). Running this noscript using sudo -i -u user bash --rcfile /Folder/noscript.sh works and runs all aspects of the noscript as the user. But my preference would be to not actually run it like that but to have everything, including switching to the user, within the noscript. I've done some searching and found instructions on the opposite problem, being a user and trying to run a noscript as root, but not my issue of being root and wanting to run as a user. Ideally, I would detect first if a user is logged in (using
https://redd.it/wqxoxe
@r_bash
I have a bash noscript that I wrote that is designed to be run as a user, but that will be executed as root (on a Mac via MDM). Running this noscript using sudo -i -u user bash --rcfile /Folder/noscript.sh works and runs all aspects of the noscript as the user. But my preference would be to not actually run it like that but to have everything, including switching to the user, within the noscript. I've done some searching and found instructions on the opposite problem, being a user and trying to run a noscript as root, but not my issue of being root and wanting to run as a user. Ideally, I would detect first if a user is logged in (using
$( scutil <<< "show State:/Users/ConsoleUser" | awk '/Name :/ && ! /loginwindow/ { print $3 }' )) and then run the noscript as that logged in user. I played around with things like sudo -i -u user without success. Hoping that someone here might have a better idea. Thank you!https://redd.it/wqxoxe
@r_bash
reddit
Running Script As Other User - Inside Script
I have a bash noscript that I wrote that is designed to be run as a user, but that will be executed as root (on a Mac via MDM). Running this noscript...
I want real world examples of what do you actually use Bash for.
Hi, it seems like everyone is recommending me to learn Bash but no one really explain me why.
When I asked them what do you use it for, they said "everything" and that's it.
​
Could you guys give me 1-2 examples of what do you use it for, in your daily life.
How does it make you life easier?
​
P.S. Sorry for my English.
https://redd.it/wrb25x
@r_bash
Hi, it seems like everyone is recommending me to learn Bash but no one really explain me why.
When I asked them what do you use it for, they said "everything" and that's it.
​
Could you guys give me 1-2 examples of what do you use it for, in your daily life.
How does it make you life easier?
​
P.S. Sorry for my English.
https://redd.it/wrb25x
@r_bash
reddit
I want real world examples of what do you actually use Bash for.
Hi, it seems like everyone is recommending me to learn Bash but no one really explain me why. When I asked them what do you use it for, they said...
bashflix - Bash noscript that combines several open source tools to stream video on MacOS and Linux.
https://github.com/andretavare5/bashflix
https://redd.it/wtg24n
@r_bash
https://github.com/andretavare5/bashflix
https://redd.it/wtg24n
@r_bash
GitHub
GitHub - andretavare5/bashflix: Video streaming on MacOS and Linux.
Video streaming on MacOS and Linux. Contribute to andretavare5/bashflix development by creating an account on GitHub.
Entering an interactive CLI loop
I have an application with an interactive CLI. Fairly simple c++ using stdIO with an infinite loop and command parsing. Works really well in a terminal.
I can call this program fine from a noscript like this:
printf "cmd1 cmd2 cmd3 printstatus cmd4 cmd5" | ./myprog
I want to be able to call this program and then take actions from it in a noscript, like:
./myprog -args
#magic missing step
printf "cmd1"
printf "cmd2"
result= printf "printstatus"
if( $result == "active")
printf exit
fi
Etc.
Is there an easy way to create this?
https://redd.it/wtdejn
@r_bash
I have an application with an interactive CLI. Fairly simple c++ using stdIO with an infinite loop and command parsing. Works really well in a terminal.
I can call this program fine from a noscript like this:
printf "cmd1 cmd2 cmd3 printstatus cmd4 cmd5" | ./myprog
I want to be able to call this program and then take actions from it in a noscript, like:
./myprog -args
#magic missing step
printf "cmd1"
printf "cmd2"
result= printf "printstatus"
if( $result == "active")
printf exit
fi
Etc.
Is there an easy way to create this?
https://redd.it/wtdejn
@r_bash
reddit
Entering an interactive CLI loop
I have an application with an interactive CLI. Fairly simple c++ using stdIO with an infinite loop and command parsing. Works really well in a...
Filling an associative Array inside a function using a nameref variable
Hello guys,
I have a question for you. I'm writing a noscript that's supposed to check certain PCs over ssh. To achieve this, I have an associative array `declare -A test_results` outside the function. Inside the function, I try to fill it with strings that are supposed to be printed to stdout in the end of the noscript. Like this:
function check_pc{
# $1 = Room name, $2 = pc number, $3 = Array test_results
local -n result=$3
if ! ssh $SSH_OPTIONS $SSH_USER@$1-pc$2.$DOMAIN echo test >/dev/null; then
result[$1-pc$2]="$1-pc$2 is unreachable\n"
# V_ECHO contains "echo" if run with -v option
$V_ECHO "[Debug] In function check_pc - Content of result varibale for $1-pc$2: >>> ${result[$1-pc$2]} <<< [SSH]"
return 1
fi
}
Imagine my room name is n040 and pc number is 10. Inside the function it'll output `${result[n040-pc10]}` just fine: "n040-pc10 is unreachable\\n". Outside of the function though, `$test_results[n040-pc10]` is empty.
This function is being called in a loop with many machines simultaneously like this:
...
declare -A test_results
...
for (( pc_count=0; $pc_count<=${PC[$lab_count]}; pc_count=pc_count+1 )); do
printf -v PC_COUNT "%02d" $pc_count
check_pc ${LAB[$lab_count]} $PC_COUNT test_results &
done
...
Why is `$test_results` empty? Can anyone help me out here pls? Maybe there are smarter ways of doing this?
pls no roasting, constructive criticism is welcome. I'm not experienced with bash noscripts.
Thank you :)
https://redd.it/wvq8fo
@r_bash
Hello guys,
I have a question for you. I'm writing a noscript that's supposed to check certain PCs over ssh. To achieve this, I have an associative array `declare -A test_results` outside the function. Inside the function, I try to fill it with strings that are supposed to be printed to stdout in the end of the noscript. Like this:
function check_pc{
# $1 = Room name, $2 = pc number, $3 = Array test_results
local -n result=$3
if ! ssh $SSH_OPTIONS $SSH_USER@$1-pc$2.$DOMAIN echo test >/dev/null; then
result[$1-pc$2]="$1-pc$2 is unreachable\n"
# V_ECHO contains "echo" if run with -v option
$V_ECHO "[Debug] In function check_pc - Content of result varibale for $1-pc$2: >>> ${result[$1-pc$2]} <<< [SSH]"
return 1
fi
}
Imagine my room name is n040 and pc number is 10. Inside the function it'll output `${result[n040-pc10]}` just fine: "n040-pc10 is unreachable\\n". Outside of the function though, `$test_results[n040-pc10]` is empty.
This function is being called in a loop with many machines simultaneously like this:
...
declare -A test_results
...
for (( pc_count=0; $pc_count<=${PC[$lab_count]}; pc_count=pc_count+1 )); do
printf -v PC_COUNT "%02d" $pc_count
check_pc ${LAB[$lab_count]} $PC_COUNT test_results &
done
...
Why is `$test_results` empty? Can anyone help me out here pls? Maybe there are smarter ways of doing this?
pls no roasting, constructive criticism is welcome. I'm not experienced with bash noscripts.
Thank you :)
https://redd.it/wvq8fo
@r_bash
reddit
Filling an associative Array inside a function using a nameref...
Hello guys, I have a question for you. I'm writing a noscript that's supposed to check certain PCs over ssh. To achieve this, I have an associative...
How do I copy data from a USB port into a file ? $cat <port> , but for binary ?
I need to send a command to an oscilloscope via a USB port. I need to put the binary reply into a file.
Right now I am using this:
echo ":SYST:UTIL:READ? 1,33554432" > /dev/usbtmc0; cat /dev/usbtmc0 > reply.bin
It works well for text replies but seems to mess up binary replies. How do I put the binary reply that comes from /dev/usbtmc0 into a file ?
Thanks
Solution
$cat actually works in this situation. There was a problem with the downstream file processing that led me to say that $cat wasn't working. I was wrong.
​
​
https://redd.it/wvyaue
@r_bash
I need to send a command to an oscilloscope via a USB port. I need to put the binary reply into a file.
Right now I am using this:
echo ":SYST:UTIL:READ? 1,33554432" > /dev/usbtmc0; cat /dev/usbtmc0 > reply.bin
It works well for text replies but seems to mess up binary replies. How do I put the binary reply that comes from /dev/usbtmc0 into a file ?
Thanks
Solution
$cat actually works in this situation. There was a problem with the downstream file processing that led me to say that $cat wasn't working. I was wrong.
​
​
https://redd.it/wvyaue
@r_bash
reddit
How do I copy data from a USB port into a file ? $cat <port> , but...
I need to send a command to an oscilloscope via a USB port. I need to put the binary reply into a file. Right now I am using this: echo...
I created bash noscripts to automate and simplify getting my homelab up and running.
https://github.com/rishavnandi/Boiler_plates
https://redd.it/wwjchw
@r_bash
https://github.com/rishavnandi/Boiler_plates
https://redd.it/wwjchw
@r_bash
GitHub
GitHub - rishavnandi/Boiler_plates: Docker Compose Boilerplates
Docker Compose Boilerplates. Contribute to rishavnandi/Boiler_plates development by creating an account on GitHub.
Can you add features such as Syntax highlighting and Auto-suggestions to Bash?
Recently I've started to experiment with Bash and I have one question. Is their a way to add Syntax highlighting and Autosuggestions to Bash? The one thing I LOVE about the Fish shell is it's out-of-the-box autosuggestion feature that not only tries to auto-complete commands, but also suggests from your command history, this is the one thing I think Fish dose better than any other shell and I'm hoping that I can replicate it on Bash.
I know it's challenging to implement autosuggestions in Bash because it's a limitation of GNU readline - Bash uses readline for entering and editing text, but this means you're limited to using readline features for dynamic line editing. E.g you cannot dynamically change the color of text a user inputs using readline (limiting the implementation of Fish-like syntax highlighting).
Do any workarounds exist to make syntax highlighting and autosuggestions work in Bash? Any help would be much appreciated.
https://redd.it/wylaoj
@r_bash
Recently I've started to experiment with Bash and I have one question. Is their a way to add Syntax highlighting and Autosuggestions to Bash? The one thing I LOVE about the Fish shell is it's out-of-the-box autosuggestion feature that not only tries to auto-complete commands, but also suggests from your command history, this is the one thing I think Fish dose better than any other shell and I'm hoping that I can replicate it on Bash.
I know it's challenging to implement autosuggestions in Bash because it's a limitation of GNU readline - Bash uses readline for entering and editing text, but this means you're limited to using readline features for dynamic line editing. E.g you cannot dynamically change the color of text a user inputs using readline (limiting the implementation of Fish-like syntax highlighting).
Do any workarounds exist to make syntax highlighting and autosuggestions work in Bash? Any help would be much appreciated.
https://redd.it/wylaoj
@r_bash
reddit
Can you add features such as Syntax highlighting and...
Recently I've started to experiment with Bash and I have one question. Is their a way to add Syntax highlighting and Autosuggestions to Bash? The...
How to interpret ANSI escape characters in a file?
Is there an easy way to read a text file (presumably a log of a previously executed command) and interpret any escape sequences so that
EDIT: Figured it out
https://redd.it/wzk2ly
@r_bash
Is there an easy way to read a text file (presumably a log of a previously executed command) and interpret any escape sequences so that
cat'ing the new log file is equivalent to viewing it in a text editor? For example, if the output of the command sends the letter A, a backspace, and then the letter E, the log file (after being interpreted) should only contain the character E and nothing else.EDIT: Figured it out
https://redd.it/wzk2ly
@r_bash
Unix & Linux Stack Exchange
How to convert escape sequences to text while preserving display format?
I have a text file that contains (ANSI ?) escape sequences:
When I cat the file I get formatted output:
How do I save / pipe the output of the text file to a new file so that the control codes are
When I cat the file I get formatted output:
How do I save / pipe the output of the text file to a new file so that the control codes are
Authentication Bearer Token
Is it possible to obtain the auth bearer token of a login session through noscript? I want to POST something on my website via curl POST but can't as it required bearer token to be passed. Can I use my creds to GET token in command line or through bash noscript?
https://redd.it/x05q6v
@r_bash
Is it possible to obtain the auth bearer token of a login session through noscript? I want to POST something on my website via curl POST but can't as it required bearer token to be passed. Can I use my creds to GET token in command line or through bash noscript?
https://redd.it/x05q6v
@r_bash
reddit
Authentication Bearer Token
Is it possible to obtain the auth bearer token of a login session through noscript? I want to POST something on my website via curl POST but can't...
Brash Cli Trash Manager in Pure Bash
Why Brash
Well, why not. As you see its similar to Trash\_cli. Unlike Trash_cli, Brash don't Depends on any Python libs just pure bash.
So why not ?
https://redd.it/x0m7y4
@r_bash
Why Brash
Well, why not. As you see its similar to Trash\_cli. Unlike Trash_cli, Brash don't Depends on any Python libs just pure bash.
So why not ?
https://redd.it/x0m7y4
@r_bash
GitHub
GitHub - andreafrancia/trash-cli: Command line interface to the freedesktop.org trashcan.
Command line interface to the freedesktop.org trashcan. - andreafrancia/trash-cli
is there a way to get a command history list view like this in bash ?
​
https://preview.redd.it/m9duxw3cnuk91.png?width=1205&format=png&auto=webp&s=d5708c47a840039b0d59215f65ec4cae9436bab6
https://redd.it/x1ime0
@r_bash
​
https://preview.redd.it/m9duxw3cnuk91.png?width=1205&format=png&auto=webp&s=d5708c47a840039b0d59215f65ec4cae9436bab6
https://redd.it/x1ime0
@r_bash
Is there a Bash equivalent to Zsh Named Directories feature?
Hi, I read that Zsh has the Named Directories feature, where you can create an 'alias' to a path.
The neat part is that you can use this alias as part of a command.
So, instead of using something like:
cp .bashrc /very/long/path/name
I could use:
cp .bashrc vlpn
Does Bash has something like that?
https://redd.it/x1nik6
@r_bash
Hi, I read that Zsh has the Named Directories feature, where you can create an 'alias' to a path.
The neat part is that you can use this alias as part of a command.
So, instead of using something like:
cp .bashrc /very/long/path/name
I could use:
cp .bashrc vlpn
Does Bash has something like that?
https://redd.it/x1nik6
@r_bash
reddit
Is there a Bash equivalent to Zsh Named Directories feature?
Hi, I read that Zsh has the Named Directories feature, where you can create an 'alias' to a path. The neat part is that you can use this alias as...
Is it possible to stop a bash a bash noscript during execution and then return back to where you left off the next time you run the noscript
Hopefully the noscript makes sense, for context let's say this is the situation:
- I'm running a bash noscript that runs random commands one by one and in order to proceed to each next command the user has to press the spacebar. there are about 80 items
- Let's say the user presses CTRL+C to stop the noscript from executing halfway through those 80 items
Is there a way to return back to where they were in noscript execution when they cancelled the noscript? Or do they have to re-run the noscript and then start at the very beginning again?
https://redd.it/x225ew
@r_bash
Hopefully the noscript makes sense, for context let's say this is the situation:
- I'm running a bash noscript that runs random commands one by one and in order to proceed to each next command the user has to press the spacebar. there are about 80 items
- Let's say the user presses CTRL+C to stop the noscript from executing halfway through those 80 items
Is there a way to return back to where they were in noscript execution when they cancelled the noscript? Or do they have to re-run the noscript and then start at the very beginning again?
https://redd.it/x225ew
@r_bash
reddit
Is it possible to stop a bash a bash noscript during execution and...
Hopefully the noscript makes sense, for context let's say this is the situation: - I'm running a bash noscript that runs random commands one by one...
Re-directing outputs from a noscript that uses FFmpeg to recursively transcode video files
Hi all. I have very little experience so far with bash noscripting, so please forgive my rudimentary question... but I've been given a noscript that uses FFmpeg to recursively transcode mkv video files to mp4 derivatives:
#!/bin/bash
VIDEOS=/Users/ExampleUser/Desktop/1
cd /Users/ExampleUser/Desktop/1
find "$VIDEOS" -name '*.mkv' -exec sh -c 'ffmpeg -analyzeduration 15M -guess_layout_max 0 -i "$0" -y -pix_fmt yuv420p -codec:v libx264 -fps_mode cfr -r 29.97 -filter:v "yadif,scale=640:480" -aspect 4:3 -preset medium -g 60 -sc_threshold 0 -profile:v main -b:v 1000k -minrate 900k -maxrate 1200k -bufsize 2000k -tune film -pass 1 -an -f mp4 /dev/null ; ffmpeg -i "$0" -y -pass 2 -pix_fmt yuv420p -codec:v libx264 -fps_mode cfr -r 29.97 -filter:v "yadif,scale=640:480" -preset medium -g 60 -sc_threshold 0 -profile:v main -b:v 1000k -minrate 900k -maxrate 1200k -bufsize 2000k -tune film -map 0:0 -map 0:1 -codec:a aac_at -ac 2 -ar 48000 -b:a 128k -filter:a "aresample=async=1:min_hard_comp=0.100000:first_pts=0" -f mp4 -movflags faststart "${0%%.mkv}_sl.mp4"' {} \;
rm *.log.mbtree *.log
exit;
Right now, it outputs the derivative mp4s into the same directory as the source mkv files (specified by the variable VIDEOS). How can I change the output destination for the mp4 files? Ideally, I'd like to re-direct the mp4 outputs to a different disk attached to our workstation. Many thanks for any suggestions!
https://redd.it/x2knt0
@r_bash
Hi all. I have very little experience so far with bash noscripting, so please forgive my rudimentary question... but I've been given a noscript that uses FFmpeg to recursively transcode mkv video files to mp4 derivatives:
#!/bin/bash
VIDEOS=/Users/ExampleUser/Desktop/1
cd /Users/ExampleUser/Desktop/1
find "$VIDEOS" -name '*.mkv' -exec sh -c 'ffmpeg -analyzeduration 15M -guess_layout_max 0 -i "$0" -y -pix_fmt yuv420p -codec:v libx264 -fps_mode cfr -r 29.97 -filter:v "yadif,scale=640:480" -aspect 4:3 -preset medium -g 60 -sc_threshold 0 -profile:v main -b:v 1000k -minrate 900k -maxrate 1200k -bufsize 2000k -tune film -pass 1 -an -f mp4 /dev/null ; ffmpeg -i "$0" -y -pass 2 -pix_fmt yuv420p -codec:v libx264 -fps_mode cfr -r 29.97 -filter:v "yadif,scale=640:480" -preset medium -g 60 -sc_threshold 0 -profile:v main -b:v 1000k -minrate 900k -maxrate 1200k -bufsize 2000k -tune film -map 0:0 -map 0:1 -codec:a aac_at -ac 2 -ar 48000 -b:a 128k -filter:a "aresample=async=1:min_hard_comp=0.100000:first_pts=0" -f mp4 -movflags faststart "${0%%.mkv}_sl.mp4"' {} \;
rm *.log.mbtree *.log
exit;
Right now, it outputs the derivative mp4s into the same directory as the source mkv files (specified by the variable VIDEOS). How can I change the output destination for the mp4 files? Ideally, I'd like to re-direct the mp4 outputs to a different disk attached to our workstation. Many thanks for any suggestions!
https://redd.it/x2knt0
@r_bash
reddit
Re-directing outputs from a noscript that uses FFmpeg to recursively...
Hi all. I have very little experience so far with bash noscripting, so please forgive my rudimentary question... but I've been given a noscript that...
How can I write this if condition more efficiently?
if $a -eq 0 && $b -eq 0 && $c -eq 0 ; then
I want to do something like:
if $a && $b && $c -eq 0
i just don't know how to format it correctly
https://redd.it/x37adx
@r_bash
if $a -eq 0 && $b -eq 0 && $c -eq 0 ; then
I want to do something like:
if $a && $b && $c -eq 0
i just don't know how to format it correctly
https://redd.it/x37adx
@r_bash
reddit
How can I write this if condition more efficiently?
if [ $a -eq 0 ] && [ $b -eq 0 ] && [ $c -eq 0 ]; then I want to do something like: if $a && $b && $c -eq 0 i just don't know how to format...
Any tip on optimizing this?
Hi!
I have a
Since it runs so frequently I want it to be as performant as possible.
This is what I came so far:
#!/bin/sh
player="playerctl -p 'spotify'"
metadata="$player metadata"
playerstatus=$(eval $player status 2> /dev/null)
([ "$playerstatus" = "Playing" ] || "$player_status" = "Paused" ) && \
printf "$(eval $metadata artist) - $(eval $metadata noscript)"
It works, but I figured this is a nice opportunity to learn something new about shell-noscripts.
Does anybody have any tip or idea on how to improve this for runtime footprint?
Thanks in advance :D
EDIT: result thanks to @rustyflavor and @oh5nxo:
player=$(playerctl -p 'spotify' metadata -f "{{ artist }} - {{ noscript }}")
"$player" != "No players found" && printf "$player"
https://redd.it/x3ez5w
@r_bash
Hi!
I have a
waybar module to track Spotify that runs every two seconds.Since it runs so frequently I want it to be as performant as possible.
This is what I came so far:
#!/bin/sh
player="playerctl -p 'spotify'"
metadata="$player metadata"
playerstatus=$(eval $player status 2> /dev/null)
([ "$playerstatus" = "Playing" ] || "$player_status" = "Paused" ) && \
printf "$(eval $metadata artist) - $(eval $metadata noscript)"
It works, but I figured this is a nice opportunity to learn something new about shell-noscripts.
Does anybody have any tip or idea on how to improve this for runtime footprint?
Thanks in advance :D
EDIT: result thanks to @rustyflavor and @oh5nxo:
player=$(playerctl -p 'spotify' metadata -f "{{ artist }} - {{ noscript }}")
"$player" != "No players found" && printf "$player"
https://redd.it/x3ez5w
@r_bash
reddit
Any tip on optimizing this?
Hi! I have a `waybar` module to track **Spotify** that runs every two seconds. Since it runs so frequently I want it to be as performant as...
Are parentheses wrapped around the primary case statement variable required?
Parentheses:
case "$1" in
esac
Without parentheses:
case $1 in
esac
Would I have to worry about whitespace, and or weird ass symbols in the $1 variable? Or does the case statement simply not care? If parentheses are not required in any stretch of the imagination, then I will write all my dash noscript case statements without parentheses.
https://redd.it/x3vnes
@r_bash
Parentheses:
case "$1" in
esac
Without parentheses:
case $1 in
esac
Would I have to worry about whitespace, and or weird ass symbols in the $1 variable? Or does the case statement simply not care? If parentheses are not required in any stretch of the imagination, then I will write all my dash noscript case statements without parentheses.
https://redd.it/x3vnes
@r_bash
reddit
Are parentheses wrapped around the primary case statement variable...
Parentheses: case "$1" in esac Without parentheses: case $1 in esac Would I have to worry about whitespace, and or weird ass...