Сделать STDIN исполняемым с помощью shebang

Это еще один случай, когда прерванное резервное копирование оставляет дублирование в состоянии, когда его невозможно восстановить. Я удалил частичные файлы из последней инкрементной резервной копии, и теперь она снова работает.

0
24.09.2021, 11:46
1 ответ

Использовать awk как оболочку shebang:

#! /usr/bin/awk BEGIN{getline;cmd="db"}{print|cmd}END{exit(close(cmd))}

... "db" commands here...

Если ваш скрипт не должен запускаться напрямую через execve(2), а только через оболочку (или с помощью таких команд, как find -exec), у вас есть гораздо больше возможностей, в том числе сделать его исполняемым без добавления перед ним шебанга, и сохраните его как допустимый командный сценарий для любого языка, который понимает эта команда db. Все зависит от того, что это за язык. Например, если строки комментариев на этом языке начинаются с //(, как в C++ ), вы можете использовать:

// 2>/dev/null; exec db "$0" "$@"

... "db" commands here...
2
24.09.2021, 12:38

Теги

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