Сначала настройте ловушку в сеансе для поведения выхода:
trap ~/.logout EXIT
Если вы хотите, вы можете добавить это поведение ловушки в bashrc, и тогда сценарий .logout будет выполняться каждый раз, когда пользователи пытаются выйти из оболочки.
Затем вы можете написать сценарий .logout:
#!/bin/bash
cd /path/to/git/working/project
if [ "$( git status | wc -l )" -gt 5 ]
then
echo "Check in your work before you leave."
bash
fi
Затем, когда вы попытаетесь выйти из сеанса, будет выполнен сценарий .logout, и появится bash, чтобы проверить, правильно ли делает пользователь. Если пользователи поступят правильно с git, сеанс завершится нормально.
Вы можете использовать действие -exec
в find
, чтобы можно было манипулировать строкой оболочки с именем файла. Расширение параметра "${var%.*}"
можно использовать для удаления расширения. Ниже приведен пример.
find. -type f -name '*.css.gz' -exec bash -c 's3cmd put --acl-public --add-header="Content-Encoding: gzip" "$1" "s3://mybucket/assets/${1%.*}"' -- {} \;