#!/bin/sh
my_script(){
{ cat; cat <&3; }>"$0"
} <<SHEBANG 3<<\SCRIPT
#!${SHELL}
SHEBANG
#now all the rest of your script
#goes in here
SCRIPT
my_script
большинство оболочек автоматически помещают все содержимое здесь-документов в защищенные временные файлы. те, которые не используют каналы, и этих буферов обычно более чем достаточно для записи сценариев оболочки, но, конечно, они не точные.
и функции - это буквальные строки, хранящиеся в памяти оболочки. выполнение описанного выше должно требоваться только один раз, и после этого ваш скрипт будет интерпретироваться тем, что было в $ SHELL
в то время, когда вы его запускали.
setcap
Я полагаю, что setcap
содержится в этом пакете libcap2-bin
. Я нашел это, погуглив «debian setcap», что привело меня к этой справочной странице:
Название справочной страницы говорит вам, в каком пакете она находится:
/ jessie / libcap2-bin / setcap(8)
Теперь, когда мы «думаем», что знаем имя пакета, мы можем его найти:
Если вы прокрутите эту страницу вниз, вы увидите все различные архитектуры. Нажмите на ссылку для amd64:
И вотsetcap
:
File list of package libcap2-bin in jessie of architecture amd64
/sbin/capsh
/sbin/getcap
/sbin/getpcaps
/sbin/setcap
/usr/share/doc/libcap2-bin/README.Debian
/usr/share/doc/libcap2-bin/changelog.Debian.gz
/usr/share/doc/libcap2-bin/changelog.gz
/usr/share/doc/libcap2-bin/copyright
/usr/share/man/man1/capsh.1.gz
/usr/share/man/man1/getpcaps.1.gz
/usr/share/man/man5/capability.conf.5.gz
/usr/share/man/man8/getcap.8.gz
/usr/share/man/man8/pam_cap.8.gz
/usr/share/man/man8/setcap.8.gz
Просто выполните поиск, чтобы узнать, есть ли в пакете эта команда, используя
apt-file search setcap
Если файл apt -не установлен, сначала установите его, а затем повторите -проблему выше:
sudo apt install apt-file -y && sudo apt-file update
apt-file search setcap
нужная запись отображается как
libcap2-bin: /sbin/setcap
теперь вы знаете, в каком пакете он есть, поэтому установите его, используя
sudo apt-get install libcap2-bin
чтобы увидеть содержимое проблемы с пакетом
dpkg -L some-package
dpkg -L libcap2-bin
где вы увидите setcap
и его аналогgetcap