Создание новых каталогов с помощью Python в Linux

Используя sed, на основании этого ответа:

sed -i "/^NoDisplay=true\$/h;\${x;/^\$/{s//NoDisplay=true/;H};x}" '/usr/share/applications/yelp.desktop'

Сломан без выхода $с:

# Store the line in the hold space if found
/^NoDisplay=true$/h

# At the end of the file
${
    # Switch to the hold space
    x
    # If it's empty
    /^$/{
        # Replace the line
        s//NoDisplay=true/
        # Store it in the hold space
        H
    }
    # Switch to the hold space
    x
}

Это можно сделать в awk, но поскольку до GNU 4.1.0 не было редактирования на месте , вы, по сути, делаете то же самое, что и grep+ echo.

1
25.05.2021, 19:53
1 ответ

Простой ответ: :нет. Хотя я уверен, что ваш сценарий может запрашивать и получать повышенные разрешения, обычный способ сделать это — предположить, что тот, кто запускает сценарий, имеет доступ к тому, что сценарий должен изменить. В конце концов, если у пользователя нет разрешения, то он вообще не имеет права запускать сценарий.

Так что просто напишите свой сценарий и предоставьте пользователю возможность убедиться, что он имеет право делать то, что хочет. Вместо этого вам следует изменить свой сценарий, чтобы он перехватывал ошибку и выдавал более информативное сообщение об ошибке, чтобы пользователь мог знать, к какому каталогу ему требуется доступ и какой тип доступа. Поэтому вместо ../logполучите полный путь и вместо «отказано в доступе» проверьте, какие разрешения требуются, и проверьте их, прежде чем пытаться выполнить операцию. Таким образом, вы можете изящно ошибиться и сообщить пользователю, что ему нужно.

2
28.07.2021, 11:29

Теги

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