====== Programming ======
http://rogerdudler.github.io/git-guide/
===== Bash =====
FIXME
==== root-check ====
if [ $UID -eq 0 ];then echo "root";fi
==== online-check ====
ping -c 1 ${HOST} -W 1 >/dev/null
if [ $? == 0 ];
then
fi
==== colors ====
clr_red=$'\e[1;31m'
clr_green=$'\e[1;32m'
clr_yellow=$'\e[1;33m'
clr_blue=$'\e[1;34m'
clr_reset=$'\e[0m'
echo ${clr_red}test${clr_reset}
==== logging ====
log single command (only stderr) and view simultaneously (stdout+stderr)
#via Process Substitution (https://www.gnu.org/software/bash/manual/bash.html#Process-Substitution)
make 2> >( tee "$logfile" ) ; echo $?
log multiple lines/commands:
exec 3> >(tee logfile)
make alpha 2>&3 &&
make bravo 2>&3 &&
make charlie 2>&3 && success=1
exec 3>&-
==== Case ====
case "$string" in
*foo*)
#anything
;;
[1-6]*)
#number-ranges
;;
*)
#all other
;;
esac
==== stringmanipulation ====
In Bash 4:
all lowercase
$ echo "${string,,}"
all uppercase:
$ echo "${string^^}"
[[https://stackoverflow.com/questions/2264428/converting-string-to-lower-case-in-bash|Quelle]]
=== path / filename ===
$ VAR=/home/me/mydir/file.c
$ DIR=$(dirname "${VAR}")
$ echo "${DIR}"
/home/me/mydir
$ basename "${VAR}"
file.c
=== substrings ===
a=string
b=${a:p:l}
#p=Position (0-basiert),l=Länge
=== replace ===
orig="AxxBCyyyDEFzzLMN"
mod=${orig//[xyz]/_}
=== Regex-Check ===
string='My string';
if [[ $string =~ .*My.* ]]
then
echo "It's there!"
fi
==== calculation ====
GPIO_NO=$((232+25))
==== Number-Ranges ====
ls IMG_20170923_{17..18}*
==== terminal language ====
temporary change language (e.g. to get errors in english for forums):
LANG=C
===== Batch =====
===== C/C++ =====
===== CSS =====
===== JavaScript =====
===== HTML =====
===== PHP =====