LINUX.ORG.RU

История изменений

Исправление legolegs, (текущая версия) :

Во-первых перый аргумент printf - это ФОРМАТ, а не данные. Данные (особенно приходящие извне) идут ПОСЛЕ. Это вопрос безопасности.

Переменная getstat_arg_n не нужна вообще.

Вот такие вещи можно писать короче:

getstat_core_temp="`${getstat_sysctl} dev.cpu.${getstat_core_n}.temperature`"
getstat_core_temp="`printf "${getstat_core_temp}" | cut -d, -f1`"
printf "${getstat_core_temp}${getstat_core_temp_suffix}"

например, так:

printf "%s%s" \
    "`${getstat_sysctl} dev.cpu.${getstat_core_n}.temperature | cut -d, -f1`" \
    "${getstat_core_temp_suffix}"

Некоторые промежуточные переменные нужны, но их мало, остальные просто мусор.

Ибо эти твои перекладывания из переменной в переменную не добавляют коду понятности, но делают его длиннее.

В функции getstat_battery_state вместо уродливой цепочки if можно использовать ассоциативный массив

declare -A getstat_battery_states
getstat_battery_states=(
    [-1]="missing"
    [0]="charged"
    [1]="discharging"
    [2]="charging"
)
echo -n "${getstat_battery_states[`${getstat_sysctl} hw.acpi.battery.state`]:-unknown}"

Исправление legolegs, :

Во-первых перый аргумент printf - это ФОРМАТ, а не данные. Данные (особенно приходящие извне) идут ПОСЛЕ. Это вопрос безопасности.

Переменная getstat_arg_n не нужна вообще.

Вот такие вещи можно писать короче:

getstat_core_temp="`${getstat_sysctl} dev.cpu.${getstat_core_n}.temperature`"
getstat_core_temp="`printf "${getstat_core_temp}" | cut -d, -f1`"
printf "${getstat_core_temp}${getstat_core_temp_suffix}"

например, так:

printf "%s%s" \
    "`${getstat_sysctl} dev.cpu.${getstat_core_n}.temperature | cut -d, -f1`" \
    "${getstat_core_temp_suffix}"

Некоторые промежуточные переменные нужны, но их мало, остальные просто мусор.

Ибо эти твои перекладывания из переменной в переменную не добавляют коду понятности, но делают его длиннее.

В функции getstat_battery_state вместо уродливой цепочки if можно использовать ассоциативный массив

declare -A getstat_battery_states
getstat_battery_states=(
[-1]="missing"
[0]="charged"
[1]="discharging"
[2]="charging"
)
echo -n "${getstat_battery_states[`${getstat_sysctl} hw.acpi.battery.state`]:-unknown}"

Исходная версия legolegs, :

Во-первых перый аргумент printf - это ФОРМАТ, а не данные. Данные (особенно приходящие извне) идут ПОСЛЕ. Это вопрос безопасности.

Переменная getstat_arg_n не нужна вообще.

Вот такие вещи можно писать короче:

getstat_core_temp="`${getstat_sysctl} dev.cpu.${getstat_core_n}.temperaturegetstat_core_temp="`printf "${getstat_core_temp}" | cut -d, -f1printf "${getstat_core_temp}${getstat_core_temp_suffix}"

например, так:

printf "%s%s" \
    "`${getstat_sysctl} dev.cpu.${getstat_core_n}.temperature | cut -d, -f1`" \
    "${getstat_core_temp_suffix}"

Некоторые промежуточные переменные нужны, но их мало, остальные просто мусор.

Ибо эти твои перекладывания из переменной в переменную не добавляют коду понятности, но делают его длиннее.

В функции getstat_battery_state вместо уродливой цепочки if можно использовать ассоциативный массив

declare -A getstat_battery_states
getstat_battery_states=(
[-1]="missing"
[0]="charged"
[1]="discharging"
[2]="charging"
)
echo -n "${getstat_battery_states[`${getstat_sysctl} hw.acpi.battery.state`]:-unknown}"