По умолчанию echo
всегда выводит завершающую новую строку.
Вы можете передать аргумент -n
в echo
, чтобы предотвратить это.
Изman echo
:
-n do not output the trailing newline
Редактировать:
«Проблема» здесь не в вашей команде cat $PWD/$1 | jq -cr '.[]'
, а в самой строке echo
, точнее, в цикле for
. С помощью цикла for
вы разделяете то, что передаете ему (вывод команды jq
)слово за словом.
По сути, вы передаете каждую строку, разделенную пробелом один -на -один, в команду echo, которая по умолчанию будет добавлять завершающую новую строку каждый раз при выполнении.
Он находится в reboot.c
и хорошо прокомментирован.
static void native_machine_power_off(void)
{
if (pm_power_off) {
if (!reboot_force)
machine_shutdown();
pm_power_off();
}
/* A fallback in case there is no PM info available */
tboot_shutdown(TB_SHUTDOWN_HALT);
}
Итак,pm_power_off
:Теперь это действительно зависит от платформы -; независимо от того, работаете ли вы на игровой консоли или на стоечном сервере.
Вероятно, вы ищете драйвер EFI, который делает это:
efi.reset_system(EFI_RESET_SHUTDOWN, EFI_SUCCESS, 0, NULL);
в драйверах/прошивке/efi/reboot.c