Как я устанавливаю в командном процессоре для избиения?

Как я изменяюсь в командном процессоре от 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

6
задан 2 October 2016 в 15:51

2 ответа

Смотря man at, кажется, что Вы не можете изменить оболочку.

Однако Вы могли просто запустить свои команды в оболочке Bash в at оболочка шеннона, как это:

at 01:23 <<< "bash -c 'notify-send \"running from $SHELL\"'"
5
ответ дан 23 November 2019 в 07:25

Вы не можете изменить оболочку по умолчанию 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.

Это оставляет Вас для перекомпиляции собственной копии как единственного решения удовлетворить потребности.

7
ответ дан 23 November 2019 в 07:25

Другие вопросы по тегам:

Похожие вопросы: