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

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

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 :-/" } 
  • Запустить скрипт при выключении
  • Сценарий Bash для скрытия / отображения файлов
  • печать специальных символов в awk-выходе
  • Чтение файла Microsoft Excel
  • Как дождаться завершения процесса копирования (cp)?
  • Почему я получаю разные результаты при запуске моего shellscript вручную, когда я запускаю его с помощью cron?
  • Присоедините два файла, соответствующие столбцу, с повторениями
  • Можно ли сохранять ssh-соединение в bash-скрипте вместо $ (ssh user @ ip command) каждый раз?
  • выполнение сценария оболочки из запуска, медленное завершение / завершение сценария
  • проверьте, есть ли у пользователя пароль, установленный для его учетной записи в скрипте
  • Как переименовать многие файлы из любых последовательных имен файлов?
  • Linux и Unix - лучшая ОС в мире.