Bash Tips - StanfordBioinformatics/pulsar_lims GitHub Wiki
${0%/} and ${0##/}
${string%substring} # Deletes shortest match of $substring from back of $string. ${string##substring} # Deletes longest match of $substring from front of $string.
${0%/*} Assuming $0 is a file name, it will give you the directory it is located in. It works the same way as the dirname command.
${0##*/} Assuming $0 is a file name, it will give you the file name without the leading path. It works the same way as the basename command.
pyenv and pipenv
How to wait in bash for several subprocesses to finish
#### run processes and store pids in array
for i in $n_procs; do
./procs[${i}] &
pids[${i}]=$!
done
####wait for all pids
for pid in ${pids[*]}; do
wait $pid
done