просто перейдите в / sys / etc / default / grub
и измените эту строку: GRUB_CMDLINE_LINUX_DEFAULT = "quiet" на GRUB_CMDLINE_LINUX_DEFAULT = "- 1"
сохраните файл и выполните update-grub
, это решит вашу проблему
/usr/bin/env
, за которым следует имя программы, выполняет эту программу. Он ищет имя программы как исполняемый файл в каталогах, настроенных переменной окружения PATH
. Это особый случай использования env
: за env
следуют некоторые назначения переменных среды, а затем имя программы и аргументы — здесь происходит нулевое назначение переменных.
/usr/bin/env echo …
эквивалентно /bin/echo …
, за исключением того, что путь к echo
жестко не закодирован — в зависимости от в системе и значении PATH
это может быть /bin/echo
, /usr/bin/echo
, /usr/xpg4 /echo
, /usr/ucb/echo
, /usr/local/bin/echo
, /home/bob/bin/echo
, …
Почти каждая оболочка имеет встроенную команду echo
. Поведение встроенной команды оболочки и внешней команды может отличаться. На практике существуют различия между командами echo
в двух отношениях: что произойдет, если первый аргумент начинается с -
(некоторые версии echo
обрабатывают несколько параметров) , и как обрабатывается обратная косая черта (некоторые версии печатают ее буквально, другие рассматривают как управляющий символ). Таким образом, форсирование версии echo
полезно иногда, когда вы хотите использовать это зависящее от реализации поведение. В большинстве случаев вместо этого лучше использовать printf
— printf
может делать все то же, что и echo
, и переносим, кроме антиквариата.
С аргументами, переданными в вашем образце кода, выбор реализации эха не имеет значения. Если в этом безумии есть смысл, для его выяснения потребуется гораздо больше контекста.
Я понимаю, что system() просто запускает команду.
Верно.
Обычно это было бы просто «эхо и что теперь».
У вас отсутствует последний символ.
Но почему перед ним стоит «/usr/bin/env»?
Это полный путь к команде env
, которая затем выполняется вместо команды echo
.
Что именно это делает?
Он предотвращает выполнение встроенной команды echo
оболочкой, порожденной system
функцией libc
, поэтому исполняемый файл echo
впервые находится в PATH. вместо этого используется. В зависимости от соответствующих реализаций echo
поведение может отличаться, хотя я не вижу здесь ничего особенного. В обоих случаях "и что теперь?" должен быть напечатан, если вам не повезло и у вас есть файл, имя которого из пяти букв начинается с «что», например, «whatz» в вашем текущем каталоге. Если это так, то будет напечатано:
и теперь whatz