3 ms·
In startup.sh, here are a few things to think about. Instead of setting RED/GREEN/BLUE, you could do this: N=$(printf \\033) N="$N[" x=30 for a in Bl R
by chasil 3y ago
In startup.sh, here are a few things to think about.
Instead of setting RED/GREEN/BLUE, you could do this:
N=$(printf \\033)
N="$N[" x=30
for a in Bl R G Y B M C W # Black Red Green Yellow Blue Magenta Cyan White
do eval $a='$N'"'"$(( x))"m'" \
b$a='$N'"'"$((60 + x))"m'" \
${a}bg='$N'"'"$((10 + x))"m'" \
b${a}bg='$N'"'"$((70 + x))"m'" # bX=bright Xbg=background bXbg=brgt bgnd
x=$(( x + 1 ))
done # https://en.wikipedia.org/wiki/ANSI_escape_code
Unless you have "set -e" this:
if [ ! "$HOSTNAME" ]; then
HOSTNAME="$(hostname -s)"
fi
Is more succinctly expressed as this:
[ -z "$HOSTNAME" ] && HOSTNAME="$(hostname -s)"
- matan-h 3y agoApart from the length, what advantages does `[-z $VAR ] && VAR=x` over `if [ ! $VAR ]; then VAR=x fi` ? Btw, The color script is cool. This makes ANSI sensible.
- chasil 3y agoI don't think there are any functional or performance differences between these forms: [ -n "$var" ] || var=X [ -z "$var" ] && var=X if [ ! "$var" ]; then var=X; fi It's a question of [your] style and taste, I think. There are a lot more ANSI sequences that I could work into that block, but it is quite thorough for the space it occupies. BONUS: Here is my script to extract all of the stored WiFi networks and passwords when run as root: #!/bin/sh find /data \ -name WifiConfigStore.xml \ -print0 | xargs -0 awk ' /"SSID/ { s = 1 } /PreShared/ { p = 1 } s || p { gsub(/[<][^>]+[>]/, "") sub(/^[&]quot;/, "") sub(/[&]quot;$/, "") gsub(/[&]quot;/, "\"") gsub(/[&]amp;/, "\\&") gsub(/[&]lt;/, "<") gsub(/[&]gt;/, ">") } s { s = 0; printf "%-32.32s ", $0 } p { p = 0; print } ' | sort -f
- gizmo686 3y agoIf -e is set you can use || and invert the condition.