2

Что-то, что будет принимать любое количество аргументов, где каждый аргумент будет путем к файлу или каталогу. Если пользователь владеет конкретным путем, он должен проверить его, чтобы увидеть, представляет ли путь нормальный файл И является ли этот файл исполняемым. Если это так, то ваш скрипт должен выполнить / запустить файл.

Спасибо за любую помощь, я слишком долго пробовал разные вещи, и я расстроен.

3 ответа3

4
magic() {
    for p in "$@"; do
        [ -O "$p" -a -x "$p" ] && /bin/sh "$p"
    done
}

прочитайте «тест человека», чтобы увидеть, что делают проверки.

3

Чтобы получить текущий идентификатор пользователя, вы делаете:

id -u

чтобы получить владельца файла, вы делаете:

stat -c "%u" file.name

проверить, совпадает ли одно значение с другим, которое вы делаете:

if [ "$first" -eq "$second" ]
then
    ....
fi
1

Тест -O проверяет, является ли текущий пользователь владельцем файла или папки.

if [ -O "$FILENAME" ]; then echo 'Owned!'; else echo 'Nope!'; fi

См. Список операторов файловых тестовкак делать тесты в целом.)

Использование stat на * nix для этой цели сложно сделать переносимым из-за различий между платформами.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .