Чому `at` попереджає мене про те, що команди будуть виконуватися за допомогою / bin / sh? Що робити, якщо я хочу іншу оболонку?


12

Я намагався використовувати atз мого сценарію, і він друкує:

попередження: команди виконуватимуться за допомогою / bin / sh

Як би я використовував різні оболонки, якщо хотів?

Відповіді:


14

У Linux atзавжди попереджає, що він виконуватиме вказані команди /bin/sh, а не ваш улюблений оболонку. Ви не можете придушити це повідомлення, воно жорстко закодовано у вихідному коді.

Команда, яку ви передаєте, інтерпретується /bin/sh. Ця команда може бути шлях до сценарію, якщо вам подобається; потім /bin/shвиконає програму скриптів, викликаючи запуск інтерпретатора сценарію та інтерпретацію сценарію. Мова сценарію повністю не залежить від програми, яка його запускає. Отже, якщо, наприклад, ви хочете виконати скрипт bash (тобто сценарій, який починається з #!/bin/bash), просто пройдіть шлях до сценарію до atігноруйте невідповідне повідомлення.


4

ви можете домогтися запуску його з іншої оболонки, змінивши сценарій shebang . Деякі типові лінії shebang:

#!/bin/sh — Execute the file using sh, the Bourne shell, or a compatible shell
#!/bin/csh -f — Execute the file using csh, the C shell,
#!/usr/bin/perl -T — Execute using Perl with the option for taint checks
#!/usr/bin/php — Execute the file using the PHP command line interpreter
#!/usr/bin/python -O — Execute using Python with optimizations to code
#!/usr/bin/ruby — Execute using Ruby

Для запуску сценарію в заданий час я пропоную вам додати cronjob

Приклад:

У наступному рядку зроблено тестування користувацької програми test.pl - нібито сценарій Perl - запускати кожні дві години, опівночі, 2 ранку, 4 ранку, 6 ранку, 8 ранку тощо:

0 * / 2 * * * /home/username/test.pl


#!/usr/bin/perlв моєму сценарії вже shebang, але я отримую попередження
Cratylus

@Cratylus подивіться тут для пояснення.
vfbsilva

+1 шбанг і згадка про рубін і перл. Також розгляньте можливість використання "#! / Bin / env ruby".
ChuckCottrill

моя все ще скаржиться після #!/bin/sh....?
похмурий.penguin
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.