История изменений
Исправление 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}"