Unix, как определить, может ли программа быть выполнена

Попытайтесь добавить %P (и %D) к Вашим файлам журнала - затем необходимо смочь коррелировать то, что Вы видите в 'вершине' с Вашим журналом доступа.

2
задан 13 September 2013 в 14:55
2 ответа

Я не думаю, что есть идеальный способ делать то, что вы хотите. Как говорит Мартин, вы можете проверить, установлен ли исполняемый бит, но это не подтвердит, что он действительно будет работать.

Вы можете попробовать запустить программу и вместо того, чтобы искать конкретный текст в самой программе, посмотрите на переменную $? . Это возвращает статус выхода программы (обычно 0 для OK) или (в системе CentoOS я должен передать) 127 для файла, который не найден, например

find --version
if [[ $? == 127 ]]
then
    exit 1
fi

Причина, по которой не существует идеального способа, заключается в том, что статус выхода 0 для OK является обычным, и программы могут возвращать другой статус выхода, если они запускаются, но обнаруживают ошибку. Это может сработать для вас, пока что-то не запустится и не вернет статус выхода 127, указывающий на некоторую ошибку.

2
ответ дан 3 December 2019 в 10:49

You can use the -x operator to test if the executable flag is set on a file. It doesn't tell you if the executable will actually run though.

1
ответ дан 3 December 2019 в 10:49

Теги

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