Änderungen

Aus Hackerspace Ffm
Wechseln zu: Navigation, Suche

DCEM's bash script howto

874 Byte hinzugefügt, 10:23, 26. Mär. 2020
minor corrections (by SublimeText.Mediawiker)
This way it is easy to see what customisations are intended/needed.
 
=== Fail fast ===
I think it is a good idea to have a script stop as soon as any error appers.
 
[https://codeinthehole.com/tips/bash-error-reporting/ Bash error reporting - by David Winterbottom] promotes a nice concept which I modiefied for better readability.
 
<nowiki>
#!/bin/bash
set -o nounset # treat unset variables as an error when substituting
set -o pipefail # the return value of a pipeline is the status of
# the last command to exit with a non-zero status,
# or zero if no command exited with a non-zero status
set -o errexit # exit immediately if a command exits with a non-zero status
 
function print_error {
read line file <<<$(caller)
echo "An error occurred in line $line of file $file:" >&2
sed "${line}q;d" "$file" >&2
}
trap print_error ERR</nowiki>
=== using here-documents ===
==== expansions: on - EOF needs to be unquoted ====
EOF is unquoted => all lines of the here-document are subjected to parameter expansion, command substitution, and arithmetic expansion, the character sequence \newline is ignored, and ‘\’ must be used to quote the characters ‘\’, ‘$’, and ‘`’.
  <codenowiki>
cat > /etc/nginx/snippets/letsencrypt.conf << EOF
ssl_certificate /etc/letsencrypt/live/$(hostname)/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/$(hostname)/privkey.pem;
EOF</codenowiki>
<code style="white-space: nowrap">$(hostname)</code> will be expanded
==== expansions: off - EOF needs to be quoted ====
'EOF' is quoted => the lines in the here-document are not expanded
<codenowiki>cat >> /etc/nginx/conf.d/seafile.conf << EOF # 'EOF' is quoted => expansions: off
location / {
proxy_set_header Host $host;</code>
[...]
}
EOF</codenowiki>
<code style="white-space: nowrap">$host</code> will not be expanded
 
== Links ==
[https://www.grymoire.com/Unix/Sed.html The Grymoire - Sed Tutorial]
610
Bearbeitungen