Как я изменяюсь в командном процессоре от sh для избиения?
При выполнении at
, Я получаю сообщение warning: commands will be executed using /bin/sh
:
at 23:33
warning: commands will be executed using /bin/sh
Как я могу установить оболочку по умолчанию на /bin/bash
вместо /bin/sh
Смотря man at
, кажется, что Вы не можете изменить оболочку.
Однако Вы могли просто запустить свои команды в оболочке Bash в at
оболочка шеннона, как это:
at 01:23 <<< "bash -c 'notify-send \"running from $SHELL\"'"
Вы не можете изменить оболочку по умолчанию at
, это - hardcoded как /bin/sh
в источнике.
Исходный код at
разъясняет это, от at.c
:
/* POSIX.2 allows the shell specified by the user's SHELL environment variable, the login shell from the user's password database entry, or /bin/sh to be the command interpreter that processes the at-job. It also alows a warning diagnostic to be printed. Because of the possible variance, we always output the diagnostic. */ fprintf(stderr, "warning: commands will be executed using /bin/sh\n");
Реализация, от atd.c
:
if (execle("/bin/sh", "sh", (char *) NULL, nenvp) != 0)
Страница справочника соответствует соответственно:
в и пакетное чтение управляет от стандартного входа или указанного файла, которые должны быть выполнены в более позднее время, с помощью/bin/sh.
Это оставляет Вас для перекомпиляции собственной копии как единственного решения удовлетворить потребности.