diff --git a/debian/changelog b/debian/changelog index ac804c33..7baee727 100644 --- a/debian/changelog +++ b/debian/changelog @@ -20,6 +20,11 @@ byobu (5.8) unreleased; urgency=low - move wifi_quality to second right status * usr/bin/byobu-status, usr/lib/byobu/include/constants: - use printf instead of echo, saves a few forks + * usr/lib/byobu/cpu_freq, usr/lib/byobu/cpu_temp, + usr/lib/byobu/custom, usr/lib/byobu/date, usr/lib/byobu/disk_io, + usr/lib/byobu/ec2_cost, usr/lib/byobu/logo, usr/lib/byobu/network, + usr/lib/byobu/rcs_cost, usr/lib/byobu/time_binary: + - use printf where possible, saves some forks -- Dustin Kirkland Mon, 30 Jan 2012 18:12:49 -0600 diff --git a/usr/lib/byobu/cpu_freq b/usr/lib/byobu/cpu_freq index bc71d4ff..3d16e8cf 100755 --- a/usr/lib/byobu/cpu_freq +++ b/usr/lib/byobu/cpu_freq @@ -36,7 +36,7 @@ __cpu_freq() { # Must scale frequency by number of processors, if counting bogomips count=$(getconf _NPROCESSORS_ONLN 2>/dev/null || grep -ci "^processor" /proc/cpuinfo) freq=$(egrep -i -m 1 "^bogomips" /proc/cpuinfo | awk -F"[:.]" '{ print $2 }') - freq=$(echo "$freq" "$count" | awk '{printf "%01.1f\n", $1/$2/1000}') + freq=$(printf "%s %s" "$freq" "$count" | awk '{printf "%01.1f\n", $1/$2/1000}') fi fi color b c W; printf "%s" "$freq"; color -; color c W; printf "%s" "$ICON_GHz"; color -- diff --git a/usr/lib/byobu/cpu_temp b/usr/lib/byobu/cpu_temp index 8dbdfed6..7f49c8e0 100755 --- a/usr/lib/byobu/cpu_temp +++ b/usr/lib/byobu/cpu_temp @@ -23,7 +23,7 @@ __cpu_temp_detail() { local i for i in $MONITORED_TEMP /sys/class/hwmon/hwmon*/temp*_input /sys/class/hwmon/hwmon*/device/temp*_input /proc/acpi/ibm/thermal /proc/acpi/thermal_zone/*/temperature; do [ -r "$i" ] || continue - echo "$i:" + printf "%s\n" "$i:" cat "$i"/* done } diff --git a/usr/lib/byobu/custom b/usr/lib/byobu/custom index 0a61d9d6..1cff5d64 100755 --- a/usr/lib/byobu/custom +++ b/usr/lib/byobu/custom @@ -38,7 +38,7 @@ __custom() { local expiration=$(($lastrun+$freq)) if [ $now -ge $expiration ]; then "$i" > "$cache.$script" 2>/dev/null - echo "${now}" > "$cache.$script.last" + printf "%s\n" "${now}" > "$cache.$script.last" fi readfile < "$cache.$script" local str="${_RET}" diff --git a/usr/lib/byobu/date b/usr/lib/byobu/date index 93e92a50..46851675 100755 --- a/usr/lib/byobu/date +++ b/usr/lib/byobu/date @@ -30,7 +30,7 @@ __date() { ;; screen) bd=$(date "+%m%d") - [ "$bd" = "0320" ] && msg="$(echo SGFwcHkgQmlydGhkYXkgU2NyZWVuIC0tIGh0dHA6Ly9iaXQubHkvc2NyZWVuLWJkYXkK | base64 -di)" && $BYOBU_BACKEND -X -S "byobu" at "*" echo "[$msg]" + [ "$bd" = "0320" ] && msg="$(printf "%s" SGFwcHkgQmlydGhkYXkgU2NyZWVuIC0tIGh0dHA6Ly9iaXQubHkvc2NyZWVuLWJkYXkK | base64 -di)" && $BYOBU_BACKEND -X -S "byobu" at "*" echo "[$msg]" color none; printf "\005Y-\005m-\005d"; color -- ;; esac diff --git a/usr/lib/byobu/disk_io b/usr/lib/byobu/disk_io index dc08c1d6..464b2eff 100755 --- a/usr/lib/byobu/disk_io +++ b/usr/lib/byobu/disk_io @@ -23,7 +23,7 @@ __disk_io_detail() { if command -v iostat >/dev/null; then iostat -d -m -h else - echo "Please install iostat if you want detailed information on your disk throughput" + printf "%s\n" "Please install iostat if you want detailed information on your disk throughput" fi } @@ -71,7 +71,7 @@ __disk_io() { symbol="$ICON_WR" x2="$a7" fi - echo "$x2" > "$cache" + printf "%s" "$x2" > "$cache" rate=$((($x2 - $x1) / ($t2 - $t1) * 512 / 1024)) if [ $rate -lt $DISK_IO_THRESHOLD ]; then # Below threshold, don't print diff --git a/usr/lib/byobu/ec2_cost b/usr/lib/byobu/ec2_cost index 43e2d4cb..9ddc980e 100755 --- a/usr/lib/byobu/ec2_cost +++ b/usr/lib/byobu/ec2_cost @@ -68,7 +68,7 @@ __ec2_cost() { rate=$m1_large else # Otherwise, scale based on number of cpu's (c* types) - rate=$(echo "$cpu" "$m1_small" | awk '{printf "%f", $1*$2}') + rate=$(printf "%s %s" "$cpu" "$m1_small" | awk '{printf "%f", $1*$2}') fi fi hours=$(((`date +%s` - `stat --printf %Y $file_to_stat`) / 60 / 60 + 1)) @@ -95,12 +95,12 @@ __ec2_cost() { break fi done < /proc/net/dev - tx_gb=$(echo ${tx_gb} | awk '{ printf "%f", $1 / 1024 / 1024 / 1024 }') - rx_gb=$(echo ${rx_gb} | awk '{ printf "%f", $1 / 1024 / 1024 / 1024 }') - network_cost=`echo "$tx_gb" "$TX_RATE" "$rx_gb" "$RX_RATE" | awk '{printf "%f %f", $1*$2, $3*$4}' | awk '{printf "%f", $1 + $2}'` + tx_gb=$(printf "%s" ${tx_gb} | awk '{ printf "%f", $1 / 1024 / 1024 / 1024 }') + rx_gb=$(printf "%s" ${rx_gb} | awk '{ printf "%f", $1 / 1024 / 1024 / 1024 }') + network_cost=`printf "%s %s %s %s" "$tx_gb" "$TX_RATE" "$rx_gb" "$RX_RATE" | awk '{printf "%f %f", $1*$2, $3*$4}' | awk '{printf "%f", $1 + $2}'` # Calculate uptime cost - uptime_cost=`echo "$hours" | awk "{printf \"%f\", "$rate" * $hours}"` - total_cost=`echo "$network_cost" "$uptime_cost" | awk '{printf "%.2f", $1 + $2}'` + uptime_cost=`printf "%s" "$hours" | awk "{printf \"%f\", "$rate" * $hours}"` + total_cost=`printf "%s %s" "$network_cost" "$uptime_cost" | awk '{printf "%.2f", $1 + $2}'` if [ "$DETAIL" = "1" ]; then echo "================================================" echo "Estimated cost in Amazon's EC2 since last reboot" @@ -108,7 +108,7 @@ __ec2_cost() { echo " Network sent: $tx_gb GB @ \$$RX_RATE/GB" echo " Network recv: $rx_gb GB @ \$$TX_RATE/GB" echo " Network cost: \$$network_cost" - echo "------------------------------------------------" + echo "------------------------------------------------" echo " Uptime: $hours hr @ \$$rate/hr" echo " Uptime cost: \$$uptime_cost" echo "------------------------------------------------" diff --git a/usr/lib/byobu/logo b/usr/lib/byobu/logo index 0596d6e5..b10abb12 100755 --- a/usr/lib/byobu/logo +++ b/usr/lib/byobu/logo @@ -50,7 +50,7 @@ __logo() { return fi get_distro - local distro="$(echo "$_RET" | $BYOBU_SED 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/')" + local distro="$(printf "%s" "$_RET" | $BYOBU_SED 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/')" case "$distro" in *ubuntu*) if $MARKUP; then diff --git a/usr/lib/byobu/network b/usr/lib/byobu/network index c2398290..6be4eebb 100755 --- a/usr/lib/byobu/network +++ b/usr/lib/byobu/network @@ -54,7 +54,7 @@ __network() { ;; esac done < /proc/net/dev - echo "$x2" > "$cache" + printf "%s" "$x2" > "$cache" rate=$((8*($x2 - $x1) / $t / 1024)) # in kbps [ "$rate" -lt 0 ] && rate=0 if [ $rate -gt $NETWORK_THRESHOLD ]; then diff --git a/usr/lib/byobu/rcs_cost b/usr/lib/byobu/rcs_cost index db0ba73c..bc55dc8a 100755 --- a/usr/lib/byobu/rcs_cost +++ b/usr/lib/byobu/rcs_cost @@ -50,7 +50,7 @@ __rcs_cost() { for X in ${INCREMENTS}; do test "$((${X} * 1024 + 65536))" -ge ${memory} && break done - MEMORY_RATE=`echo "$X" | awk '{printf "%f", $1 / 256 * 15 / 1000}'` + MEMORY_RATE=`printf "%s" "$X" | awk '{printf "%f", $1 / 256 * 15 / 1000}'` # Data Transfer Cost Basis # Incoming $0.08/GB @@ -65,15 +65,15 @@ __rcs_cost() { # Calculate bandwidth cost tx_gb=${ifconfig_out#*RX bytes:} - tx_gb=$(echo ${tx_gb%% *} | awk '{ printf "%f", $1 / 1024 / 1024 / 1024 }') + tx_gb=$(printf "%s" ${tx_gb%% *} | awk '{ printf "%f", $1 / 1024 / 1024 / 1024 }') rx_gb=${ifconfig_out#*TX bytes:} - rx_gb=$(echo ${rx_gb%% *} | awk '{ printf "%f", $1 / 1024 / 1024 / 1024 }') - network_cost=`echo "$tx_gb" "$TX_RATE" "$rx_gb" "$RX_RATE" | awk '{printf "%f %f", $1*$2, $3*$4}' | awk '{printf "%f", $1 + $2}'` + rx_gb=$(printf "%s" ${rx_gb%% *} | awk '{ printf "%f", $1 / 1024 / 1024 / 1024 }') + network_cost=`printf "%s" "$tx_gb" "$TX_RATE" "$rx_gb" "$RX_RATE" | awk '{printf "%f %f", $1*$2, $3*$4}' | awk '{printf "%f", $1 + $2}'` # Calculate uptime cost hours=$(((`date +%s` - `stat --printf %Z /etc/hostname`) / 60 / 60 + 1)) - uptime_cost=`echo "$hours" | awk "{printf \"%f\", "$MEMORY_RATE" * $hours}"` - total_cost=`echo "$network_cost" "$uptime_cost" | awk '{printf "%.2f", $1 + $2}'` + uptime_cost=`printf "%s" "$hours" | awk "{printf \"%f\", "$MEMORY_RATE" * $hours}"` + total_cost=`printf "%s %s" "$network_cost" "$uptime_cost" | awk '{printf "%.2f", $1 + $2}'` if [ "$DETAIL" = "1" ]; then echo "==========================================================" diff --git a/usr/lib/byobu/time_binary b/usr/lib/byobu/time_binary index 8b3967e1..e039637e 100755 --- a/usr/lib/byobu/time_binary +++ b/usr/lib/byobu/time_binary @@ -128,7 +128,7 @@ done if [ -z "$clock_type" ] then - echo "ERROR: must specify clock type" + printf "%s\n" "ERROR: must specify clock type" exit 1 fi @@ -169,5 +169,5 @@ else display_time="${hh}${sep}${hm}${hs}${ending}" fi -echo -ne "$display_time" +printf "%s" "$display_time" exit 0