Вы не могли бы быть более полезным! Спасибо! Еще один вопрос, ради обучения: каким образом логика за всем этим понятие "координаты" в macOS/AppleScript по работе? Они абсолютные? Или родственник? (если родственник, то что?) Будет указание одних и тех же координатах всегда приводит к той же позиции в разных машинах и размеров и разрешения экрана? Теперь, когда вы разобрались, хорошо. Удалив мой ответ. Или микросамолет. У нас есть этот большой, громоздкий терке сыр с тонкой терка/zester прилагается к нему. Все дело в скучной и скользит вокруг, делая полный беспорядок процесса и принимая дополнительное время, чтобы обеспечить. Это будет делать красиво. Где именно вы добавить этот код? @curiousguy, чтобы записать отдельное окно с recordmydesktop, использовать "xwininfo" для получения идентификатора окна, затем с помощью recordmydesktop в "--windowid параметр". Если вы хотите масштабировать окно до определенного размера (в пикселях) есть разные способы сделать это-я думаю, что менеджер это как вариант, также поддержка подскажет вам размеры окна. (Я использую Федора.) Также я считаю, что на Openbox позволит вам "отмены оформления" окно, что очень полезно, если recordmydesktop записывает свои границы окна. Однако, я не уверен, возможно ли это через FFmpeg?

Учитывая ваши комментарии, Вы можете просто статически создать скрипт с группами тяжело-написано в нем. Этот скрипт ожидать список пользователей, один пользователь на линию, на стандартный ввод. Так называют его ./сценарий < users.txt например.

#!/бин/Баш

групп="п р" # список всех групп, которые вы хотите, чтобы ваши пользователи

# следующая функция-это оператор Case 
# он принимает в качестве первого аргумента пользователя, а в качестве второго аргумента группа
# возвращает 0, если пользователь должен быть добавлен в группу и 1 в противном случае
must_belong_to() {
 случае $2 в # Сначала мы исследуем все группы
п)
 случае $1 В # и для каждого из них мы проверяем пользователи
 А | Б ) # первый выбор: пользователи, принадлежащие к той группе
правда
;;
 *) # вторая выборка: все остальные
ложные
;;
эсок
г)
 # то же здесь...
;;
эсок
}

# мы петли на входной файл, для обработки одной записи 
# (т. е. один пользователь) одновременно
во время чтения пользователь
делать
 # Добавляем пользователя. Вы можете дать несколько вариантов здесь 
 # как домашний каталог (-д), пароль (-п)...
 команды useradd $пользователей 

 тогда петли на существующие группы, чтобы увидеть, в каком 
 # один пользователь должен быть добавлен
 для G в $Групп 
делать
 # если пользователь должен быть добавлен в группы $G
 если must_belong_to $пользователь $г 
тогда
 # мы добавляем его с командой gpasswd
 программа gpasswd -в $Пользователь $г 
интернет
сделано
сделано

Как пояснил @terdon, эта версия must_belong_to() может вырасти большой быстро. Вот еще одно решение с использованием ассоциативных массивов:

#!/бин/Баш
объявить-групп

# мы объявляем всех групп, а затем для каждого из его членов
all_the_groups="б"
группы[A]="п р"
группы[Б]="М р"

must_belong_to() {
 # мы извлекаем список всех пользователей группы в параметр
 читай-all_the_users <<< "${группы["$2"]}"

 # мы переберем пользователей из группы
 для U в $all_the_users
делать
 # если пользователь принадлежит к группе, 
 # мы вернемся сюда
 [[ $у = $1 ]] && возвращает 0
сделано

 # в случае, если пользователь не хочет принадлежать к группе,
 # мы в конечном итоге здесь
 возвращение 1
}