сценарий оболочки для самоубийства

Я пробую простой тест, чтобы убить скрипт изнутри. Кажется, он не работает.

function testKill { PID=$$ kill $PID echo hello! } 

Когда я запускаю эту функцию,

 [....]$ testKill hello! 

Это явно не убивает процесс. Как завершить процесс перед отправкой команды echo?

Когда я перемещаю все это во внешний скрипт, он корректно завершается, если я вызываю скрипт непосредственно из командной строки. Однако, если я создаю функцию внутри моего .bash_profile и вызываю скрипт изнутри этой функции, скрипт не будет убит и вместо этого будет напечатан. Как его интегрировать в мой .bash_profile?

Это минимальный рабочий пример для использования в более сложном сценарии.

2 Solutions collect form web for “сценарий оболочки для самоубийства”

Вы не написали скрипт в своем примере; это функция. Поэтому вы применяете kill к интерактивному сеансу оболочки. Интерактивные оболочки игнорируют большинство сигналов, включая SIGTERM которые вы отправляете.

Поместите функцию и ее вызов в сценарий и запустите это. Скорее всего, вы будете делать то, что ожидаете.

попробуйте следовать, если вы хотите использовать его как функцию непосредственно в bash, соответственно, полученную из консоли.

 function testKill { kill $PPID echo "no hello :-/" } 
  • Сценарий оболочки, выполняемый с cron, приводит к разному размеру файла, чем выполняется вручную
  • «Невозможно записать cd в / home / user» при поиске сценария
  • Вырезание текста между двумя запятыми, исключая последующий текст
  • Сортировка вывода ls, где файлы заканчиваются цифрами
  • Удаление шаблона из файла и добавление его в конец?
  • Как я могу переключиться с одного пользователя на другого пользователя внутри сценария?
  • Перенаправить скрипт stderr и stdout в файл, но сохранить stdout в tty?
  • Выберите конкретный диапазон полей текстового файла
  • Судебно-медицинский анализ: найти все файлы, модифицированные вокруг известного
  • Как скопировать / объединить два каталога, и если два файла имеют одинаковое имя, переименуйте более старый, добавив время его модификации
  • $ PWD переменный эквивалент pwd -P
  • альтернатива 'last`, показывающая логины только для текущего пользователя
  • Interesting Posts

    Postfix переписывает тему для определенных адресов

    Есть ли способ рассказать, как пользователь аутентифицировал свое соединение SSH? т.е. будь то по паролю или с помощью открытого ключа?

    Как постоянно устанавливать переменные среды для одного пользователя

    Функция большого файла при создании файловой системы

    Не удалось запустить скрипт python – Отказано в разрешении

    Как исправить проблему с неоднозначным именем пакета libglib2.0-0?

    Опыт работы с rdesktop и Windows 8.1

    Как написать скрипт для проверки заданий ошибок и автоматического повторного отправки?

    TightVNC не работает gnome-session

    kgdb не запускается

    Что такое MIME-эквивалент uuencode для sendmail?

    Как создать панель запуска графического интерфейса для xfce4-терминала с рыбой, но наследуя переменные среды из bash?

    Правила виртуализации IPTables

    серверы имен стираются после перезапуска systemctl network.service

    Pacemaker: переносить ресурс, не добавляя строку «prefer» в config

    Linux и Unix - лучшая ОС в мире.