Сисадмин-любитель (ulrith) wrote,
Сисадмин-любитель
ulrith

gui input for unix shell

Ну вот, дошли наконец руки доделать автоматизацию ресайзинга пикчей. Задача, напомню, была такая: вместо разных скриптов для разных требуемых размеров сделать один, универсальный. При этом, очевидно, требуется запросить новый размер у пользователя. Открытие окна терминала в данном случае выглядело бы негармонично, поэтому я озадачил гугл вопросом, как можно вводить данные пользователя в shell-скрипт посредством гуёвого окошка.

Решение нашлось в применении инструмента Xdialog (нужно установить пакет xdialog). Теперь мы можем спросить у пользователя максимальный размер будущей картинко посредством аккуратного окошка с кнопками "ок" и "отмена". Введённая цифра задаёт новую ширину или высоту (в зависимости от того что больше), сохраняя пропорции.

Код скрипта:
#!/bin/sh

XDIALOG_NO_GMSGS=1 # bug in Ubuntu Jaunty - see page
export XDIALOG_NO_GMSGS # https://bugs.launchpad.net/ubuntu/+source/libcanberra/+bug/368175

Xdialog --inputbox "Введите размер в пикселях" 0 0 2> /tmp/inputbox.tmp.$$

if [ $? = 0 ]; then
input=`cat /tmp/inputbox.tmp.$$`
convert $1 -resize "$input"x$input\> -quality 80 $input-$1
fi

rm -f /tmp/inputbox.tmp.$$
Tags: unixway
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 1 comment