Creating a simple latex launcher
Hello!
I'm not sure I'm posting in the good subreddit, don't hesitate to redirect me!
I've a little problem I'm not able to solve, because I don't understand well enough the problem to know where to search.
I would like to create a script that manages a .tex file such as :
- it opens a terminal and launches latex -pdf -pvc $FILE
, $FILE
being the argument file
- it opens the file with kwrite
Ideally, I declare this script as an application that I can set as the default application for .tex
files. This way, when I double click on the file every of these actions execute themselves.
I first tried to create a latex.sh
script (yes it's executable) :
#!/bin/bash
latexmk -pdf -pvc $1 &
kwrite $1 &
.desktop
file in ~/.local/share/applications
and tried to open a .tex
file with this application. Without surprise it does not work, but I don't really know what exactly is the process I want to see in the system so it's difficult to improve the script...style enforcement tool?
Hi folks, looking for a sh and bash enforcement tool. I found bashate but seems too limited.
https://redd.it/1i5yexv
@r_bash
rmdir "No such file or directory" but ls shows folder isn't empty
I am trying to clean up some old media files.
When I use ls to show the contents of my current folder, it lists one folder. When I use rmdir to remove that folder, it states:
ls: folder: No such file or directory
How do I get rid of the target directory?
https://redd.it/1i61br6
@r_bash
Help with Permission Issue in Bash Script (Cronjob)
Hey everyone, I’ve been stuck on an issue for a while and hope someone here can help me out. I’m trying to run a Bash script with Cron that creates Restic backups and stores a PID file. However, I keep getting the following error: Line 60: /var/tmp/restic_backup.pid: Permission denied I’ve already verified that /var/tmp/ has the correct permissions: drwxrwxrwt 16 root root 4096 Jan 20 10:50 /var/tmp The cron job is running as the correct user (poan). I’ve also tried changing the script to write in other directories like /tmp/ or /home/poan/tmp/, but the error still persists. Does anyone have any ideas on what I might be overlooking or what else I can try to resolve the issue? Any tips would be greatly appreciated! Thanks in advance!
https://redd.it/1i5n4c1
@r_bash
I made a script to automate Encrypted Journaling with GPG2
https://github.com/Medom5/encrypted-journaling
https://redd.it/1i4du4d
@r_bash
how to change prompt(+command) just before execution (PS0)
Hi, it is easy to invert the colors of my prompt+command: PS1="\e[7m> "; PS0="\e[27m"
. I want to achieve this look, but only after hitting enter. Does anyone have an idea how to achieve this?
https://redd.it/1i3pr9t
@r_bash
Give a markdown file and create files based on that: Is this possible?
Filename.java
code goes here
code goes here
code goes here
what about "case-ignore"?
Hi, why not bash ignore uppercase!
vim or VIM opens vim
ls/LS idem...
exit/EX..
ETC..
I don't know about submission flag maybe was a wrong flag
Regards!
https://redd.it/1i3hwtb
@r_bash
Contribute to my project with bash scripts
Hello everyone, I hope you are doing well. I need bash devs to contribute with useful scripts to my bash customization project. It would be appreciated if you can help me in any way. Feel free to propose changes in the project itself, but my main need is to add into the assets/contrib scripts action. If you decide to help me and contribute, open a PR and I will approve if the script fits the project's purpose.
Here is the link: https://github.com/yorevs/homesetup/tree/master/assets/contrib
Thanks for your help.
Edit: Please add your name/contact if you wish, so people know who created it (actually, create a folder with your name and put the script in it).
https://redd.it/1i2ssyh
@r_bash
Integrated LLMs in a bash program to suggest commands
https://redd.it/1i2ohao
@r_bash
My script uses more CPU than I think it should
I created the below script to turn off the keyboard light on my Lenovo Thinkpad P1 when I'm not typing.
https://gist.github.com/tonsV2/cc97bb6dd3fdd82e2e2961d417803eaa
However I see it at the top of my process list using close to 100% of CPU for a lot longer than I'd expect. Can anyone here tell me how to improve it?
https://redd.it/1i1q6u3
@r_bash
Help writing function/pipeline
Hi I'm relatevely new to bash and I use it mainly to process small data files. I've been using these commands to extract and reorder data from .cvs files, I've tried to write a single pipeline with the commands but so far I've been unable to properly add the sed command into the pipeline, everything works fine until the sed command needs to be used but if separate the pipeline before each sed everything works fine. So any help to integrate everything into a single pipeline or even to create a function would be great. Thank you in advance.
awk -F "\"*,\"*" '{print $2}' File1.csv| tail -n +2| paste -sd" " > File2.txt
sed -i 's/ 0 /\n/g' File2.txt
sed -i 's/ /\t/g' File2.txt
https://redd.it/1i0km45
@r_bash
Need Help in Improving my script
So , I have a small project where i want to install a few things on my laptop , so i created a script to help me out , as a generic script.
But the thing is there are still a few thing i could need help with . please share your view and if possible please share it as a PR if you can . will help a lot
the Link to the repo: https://github.com/aniketrath/scripts
https://redd.it/1i0mtci
@r_bash
Bad Matrix / Share your Bash sh-nanigans
Why? Because, when life in meatspace gets a bit too much, it's important for the sh-oul, to hor-sh around for sh-ts and giggles.
Throwback: a really bad "Matrix Rain" animation, in a very large Bash function, made with tput and urandom and faux-Kanji that may end up spelling swear words (but I don't want to know!) https://www.evalapply.org/posts/bad-matrix/
sh-ow yours!
https://redd.it/1hzryva
@r_bash
Sed replacement with a variable needs single and double quotes
Hi all, this may be a stupid question, so sorry in advance. I have just started to get into the world of bash scripting, and I decided to create an install script for my NixOS build. Within that, I want to create a new host, so I have decided to use sed
to add a block of Nix code from a text file in place of a comment that I have there by default. The problem arises then that I need to evaluate bash script within it using double quotes ""
as well as using the s
option at the start, which from what I can see only works with single quotes ''
.
From what I could find when googling this, I need to exit the single quotes with double quotes when writing the expression, then go back to singles to finish it.
https://askubuntu.com/questions/1390037/using-sed-with-a-variable-inside-double-quote
So this is what i have so far sudo sed -i 's|#Install new host hook|'"$(< /etc/nixos/scripts/helperFiles/newHostFlakeBlock.txt)"'|' /etc/nixos/flake.nix
https://redd.it/1i8te4k
@r_bash
Error oh my bash theme development
Good evening everyone, I'm making another theme for Oh My Bash that has the same base as my old theme, but it's not overwriting the base properly, these are the codes
New theme
if [ -z "${NEKONIGHT_BASE_LOADED}" ]; then
source ~/.oh-my-bash/themes/nekonight/nekonight-base.sh
export NEKONIGHT_BASE_LOADED=true
fi
icon_start="╭─"
icon_user=" 🌙 ${_omb_prompt_bold_olive}\u${_omb_prompt_normal}"
icon_host=" at 🌙 ${_omb_prompt_bold_cyan}\h${_omb_prompt_normal}"
icon_directory=" in 🌙 ${_omb_prompt_bold_magenta}\w${_omb_prompt_normal}"
icon_end="╰─${_omb_prompt_bold_white}λ${_omb_prompt_normal}"
_omb_theme_nekonight_git_prompt_info
_omb_theme_nekonight_scm_git_status
function _omb_theme_PROMPT_COMMAND() {
PS1="${icon_start}${icon_user}${icon_host}${icon_directory} in $(_omb_theme_nekonight_git_prompt_info)\n${icon_end} "
}
_omb_util_add_prompt_command _omb_theme_PROMPT_COMMAND
shell
icon_start="╭─"
icon_user=" 🐱 ${_omb_prompt_bold_olive}\u${_omb_prompt_normal}"
icon_host=" at 🐱 ${_omb_prompt_bold_cyan}\h${_omb_prompt_normal}"
icon_directory=" in 🐱 ${_omb_prompt_bold_magenta}\w${_omb_prompt_normal}"
icon_end="╰─${_omb_prompt_bold_white}λ${_omb_prompt_normal}"
function _omb_theme_nekonight_git_prompt_info() {
local branch_name
branch_name=$(git symbolic-ref --short HEAD 2>/dev/null)
local git_status=""
if [[ -n $branch_name ]]; then
git_status="${_omb_prompt_bold_white}(🐱 $branch_name $(_omb_theme_nekonight_scm_git_status))${_omb_prompt_normal}"
fi
echo -n "$git_status"
}
function _omb_theme_nekonight_scm_git_status() {
local git_status=""
if git rev-list --count --left-right @{upstream}...HEAD 2>/dev/null | grep -Eq '^[0-9]+\s[0-9]+$'; then
git_status+="${_omb_prompt_brown}↓${_omb_prompt_normal} "
fi
if [[ -n $(git diff --cached --name-status 2>/dev/null) ]]; then
git_status+="${_omb_prompt_green}+${_omb_prompt_normal}"
fi
if [[ -n $(git diff --name-status 2>/dev/null) ]]; then
git_status+="${_omb_prompt_yellow}•${_omb_prompt_normal}"
fi
if [[ -n $(git ls-files --others --exclude-standard 2>/dev/null) ]]; then
git_status+="${_omb_prompt_red}⌀${_omb_prompt_normal}"
fi
echo -n "$git_status"
}
\\\[\\e\[97;1m\\\](🐱 main \\\[\\e\[0;31m\\\]↓\\\[\\e\[0m\\\] \\\[\\e\[0;93m\\\]•\\\[\\e\[0m\\\]\\\[\\e\[0;91m\\\]⌀\\\[\\e\[0m\\\])\\\[\\e\[0m\\\]\\\[\\e\[0;31m\\\]↓\\\[\\e\[0m\\\] \\\[\\e\[0;93m\\\]•\\\[\\e\[0m\\\]\\\[\\e\[0m\\\]╭─ 🌙 brunociccarino at 🌙 DESKTOP-27DNBRN in 🌙 \~ in (🐱 main ↓ •⌀)
╰─λ
I made a simple "UI Library" for bash called basil. And a small helper for sourcing the library and creating a ready to run file.
Black and white mode
normal mode
retro mode
BASIL
https://redd.it/1i5sn8w
@r_bash
Command substitution problem
I do have a problem that drives me crazy:
I have a binary that needs to be run in a bash script, but in some case fails and then needs to be run in a chroot for the rest of the script.
When it first fails I set a variable RUN_IN_CHROOT=yes.
I catch the output of the binary via command substitution.
So my script looks like this:
MY_BINARY=/path/to/binary
mode=$(${MY_BINARY} -m $param1)
If that doesn't work:
RUN_IN_CHROOT=yes
mode=$(${RUN_IN_CHROOT:+chroot} ${RUN_IN_CHROOT:+/mnt} ${MY_BINARY} -m $param1)
So from this point every call to the binary has the RUN_IN_CHROOT checks and should prepend the chroot /mnt.
But I get the error: chroot /mnt: No such file or directory
It treats both as a single command, which can obviously not be found.
When I run with bash -x I see that it tries to call 'chroot /mnt' /path/to/binary -m 8
Why does it encapsulate it in this weird way, and how can I stop it from doing so?
Thanks for your help.
Sorry for the lack of formatting.
https://redd.it/1i5ohag
@r_bash
Export ain't working I'm so confused
So apparently if you change a variable and then export it, then say you open a new terminal then the variable would have changed, but this didn't work for me, even with child processes like so:
I did:
PS1="Bash is cool! "
export PS1
Then:
qterminal
but the shell prompt was still default
and even if I did the following but instead of qterminal I wrote "bash" (to show a new prompt), then it was still the same.
Why???
https://redd.it/1i5gder
@r_bash
Recommendations for optimizations to bash alias
I created a simple alias to list contents of a folder. It just makes life easier for me.
alias perms="perms"
function perms
{
END=$'\e[0m'
FUCHSIA2=$'\e[38;5;198m'
GREEN=$'\e[38;5;2m'
GREY2=$'\e[38;5;244m'
for f in *; do
ICON=$(stat -c '%F' $f)
NAME=$(stat -c '%n' $f)
PERMS=$(stat -c '%A %a' $f)
FILESIZE=$(du -sh $f | awk '{ print $1}')
UGROUP=$(stat -c '%U:%G' $f)
ICON=$(awk '{gsub(/symbolic link/,"🔗");gsub(/regular empty file/,"⭕");gsub(/regular file/,"📄");gsub(/directory/,"📁")}1' <<<"$ICON")
printf '%-10s %-50s %-17s %-22s %-30s\n' "${END} ${ICON}" "${GREEN}${NAME}${END}" "${PERMS}" "${GREY2}${FILESIZE}${END}" "${FUCHSIA2}${UGROUP}${END}"
done;
}
file=$(stat -c ' %F %A %a %U:%G %n' $1)
I made a simple note taking in bash script that utilizes fzf.
Script Repo
Demo
https://preview.redd.it/pl20rbq8lpde1.png?width=860&format=png&auto=webp&s=105a9506b2af4736f12675926c09aeef25f543dd
https://preview.redd.it/mblhvcq8lpde1.png?width=860&format=png&auto=webp&s=3191b2172a80f1dd84aa69c98975494c60a56363
https://preview.redd.it/eu6dheq8lpde1.png?width=860&format=png&auto=webp&s=82136a650b18015a2e7770c2228130a8c6738e76
https://redd.it/1i42s0q
@r_bash
how to catch status code of killed process by bash script
Hi every one, I am working on project, and I faced an a issue, the issue is that I cannot catch the exit code "status code" of process that worked in background, take this program as an example, that exits with 99 if it received a sigint, the code:
#include <signal.h>
#include <stdlib.h>
#include <unistd.h>
void bye(){
// exit with code 99 if sigint was received
exit(99);
}
int main(int argc,char** argv){
signal(SIGINT, bye);
while(1){
sleep(1);
}
return 0;
}
then I compiled it using
\`gcc example.c -o byeprogram\`
in the same directory, I have my bash script:
set -x
__do_before_wait(){
##some commands
return 0
}
__do_after_trap(){
##some commands
return 0
}
runbg() {
local __start_time __finish_time __run_time
__start_time=$(date +%s.%N)
# Run the command in the background
($@) &
__pid=$!
trap '
kill -2 $__pid
echo $?
__finish_time=$(date +%s.%N)
__run_time=$(echo "$__finish_time - $__start_time" | bc -l)
echo "$__run_time"
__do_after_trap || exit 2
' SIGINT
__do_before_wait || exit 1
wait $__pid
## now if you press ctrl+c, it will execute the commands i wrote in trap
}
out=`runbg /path/to/byeprogram`
my problem is I want to catch or print the code 99, but I cannot, I tried to execute the \`byeprogram\` from the terminal, and type ctrl+c, and it return 99, how to catch the 99 status code??
https://redd.it/1i3isxg
@r_bash
Questions about netcat and ports
Hi there,
I am testing the program netcat and I see something that I do not understand so here I am.
I listen to some ports with :for j in 20{0..9}{0..5}; do nc -lvn
`127.0.0.1` $j & done
Assuming nc will listen to tcp by default.
Then I send data into a listened port :echo lol | nc
`127.0.0.1` 2095
The output :Connection received on
`127.0.0.1` 51404
lol
The question, why is nc responding that the data is received at 127.0.0.1 51404, what is this port ? Same, if I send into port 2070, it will answer at 40630 ? etc..
EDIT : it exits with error code 130
https://redd.it/1i33ysk
@r_bash
Filtering output while outputting it.
So the concept is simple. I have a complex command that generates output to the screen. Within that output is a single piece of data that I want to capture and use later, but not in such a way that it disrupts the flow of output to the screen. If the complex command's not interactive and relatively short, I've found I can do this:
declare OUTPUT=$(complex_command)
declare -i data_captured=$(sed -n -e 's/...//p' <<<"${OUTPUT}")
printf '%s\t%s\n' "${OUTPUT}" "$(do_something_with $data_captured)"
This has the unfortunate side effect that it doesn't work for interactive complex\_command's, nor in long-lasting ones.
I thought what I'd do was, I would pretend to be one of those dea— Wait a minute. Wrong script.
I thought what I'd do was open up a file descriptor for reading and writing, start the complex\_command in the background with a tee that performs the sed and sends its output to the extra file descriptor. Then, in the main-line of the script, perform reads from that file descriptor and process them as needed, also generating output asynchronously, if necessary. Would that look something like this?
exec 3<&
complex_command | tee >(sed -n -e 's/...//p' >&3) &
while read -u 3; do
do_something_with $REPLY
done
Problem is, that's not what that syntax actually does. The first line does not create the file descriptor 3 for reading and writing locally, so the 2nd and 3rd lines complain about non-existent file descriptor 3. This is an area where my bash-fu is weak.
What am I missing?
https://redd.it/1i2s0ww
@r_bash
Bunster: compile bash scripts to self contained executables
https://github.com/yassinebenaid/bunster
https://redd.it/1i26mav
@r_bash
Change colour of double tab suggestions
I have been playing around with customising my bash prompt, just for fun, and it got me wondering if there's a way to alter the colour of the suggestions that appear when pressing double tab. Usually it will display all your options for filling in either the next file/directory, or your options for commands, on a separate line but in the same colour as the rest of the text. can I make it be a different colour to the rest?
https://redd.it/1i1o6rv
@r_bash
Trying to create install script for a rails app, struggling with if statements and multi line comments
I am trying to create an installation script to normalize development environments for a rails application.
I am struggling with this command:
certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini \
--dns-cloudflare-propagation-seconds 60 \
-d example.com
I do not understand how to use multiline comments with `\` inside the if statement below. I am properly doing something stupid wrong, but I can't figure it out.
if [ -e ~/.secrets/certbot/cloudflare.ini ]; then
echo -e "A Cloudflare token is already configured to be used by Certbot with DNS verification using Cloudflare. \nWe will try to request a certificate using following FQDN:"
echo $hostname
read -n 1 -s -r -p "Press any key to continue."
echo "We are now creating sample certificates using Let's Encrypt."
sudo certbot certonly \ --dns-cloudflare \ --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini \ --dns-cloudflare-propagation-seconds 60 \ -d $hostname
echo "The certificate has been created."
else
echo -e "Cloudflare is not yet configured to be used for Certbot, \nPlease enter your API token to configure following FQDN:"
echo $hostname
read cloudflaretoken
echo "We are now creating your file with the API token, you will find it in the following file: ~/.secrets/certbot/cloudflare.ini."
mkdir -p ~/.secrets/certbot/
touch ~/.secrets/certbot/cloudflaretest.ini
bash -c 'echo -e "# Cloudflare API token used by Certbot\ndns_cloudflare_api_token = $cloudflaretoken" > ~/.secrets/certbot/test.ini'
fi
https://redd.it/1i1fgsz
@r_bash
I created "Command Runner", a library that helps you setting up a simple CI for your projects.
Hey guys,
that's my first post on reddit and this subreddit in particular, so I hope I get the format right ;)
I wanted to create a simple CI library for my repositories to run reoccurring commands repeatedly and have a nice report after execution. I came up with "Command Runner".
https://github.com/antonrotar/command\_runner
It provides a simple API and some settings to adjust execution and logging. It's basically a thin wrapper around commands and integrates nicely with larger scope tool setups like Github Actions.
Have a look! :)
https://redd.it/1i0b2st
@r_bash
I would really appreciate checking my first bash project which i spent some time creating it after learning bash.
https://github.com/irfanbroo/Air_QualityWeatherAPI_bash
https://redd.it/1hyzdpi
@r_bash