Захотелось мне уходя утром на работу оставлять дочке креативные записочки типа " Помоешь посуду, шоколадка в верхнем шкафчике на кухне, покорми кота и т.д"
#!/bin/bash
# проверяем есть ли пакет qrencode, если есть, продолжаем...
if [ -f /usr/bin/qrencode ] ; then
# берем переменную path (путь).
path=`zenity --entry --title="Куда сохранять?" --text="Куда сохранять QR CODE? По умолчанию "$HOME", или напишите свой путь."`
# проверяем, если ответ = 0 (ок) выполняем...
if [ $? = 0 ];then
# проверяем, если не заполненно поле, то вписываем переменную $HOME - /home/ваш_пользователь.
if [ -z $path ];then
path="$HOME"
fi
# иначе вырубаем скрипт, и информируем в консоль об отмене.
else
echo "Отмена"
exit 1
fi
# берем переменную name (имя).
name=`zenity --entry --title="Имя файла?" --text="Введите имя нового QR, по умолчанию: filename"`
# проверяем, если ответ = 0 (ок) выполняем...
if [ $? = 0 ];then
# проверяем, если имя не заполненно, передаем переменной "name" дефолтное имя "filename".
if [ -z $name ];then
name="filename"
fi
# иначе вырубаем скрипт, и информируем в консоль об отмене.
else
echo "Отмена"
exit 1
fi
# берем переменную width (длинна, размер).
width=`zenity --entry --title="Какой размер?" --text="Введите размер пикселя для нового QR, по умолчанию = 3."`
# проверяем, если ответ = 0 (ок) выполняем...
if [ $? = 0 ];then
# проверяем, если размер не заполнен, передаем переменной "width" дефолтный размер = 3.
if [ -z $width ];then
width=3
fi
# иначе вырубаем скрипт, и информируем в консоль об отмене.
else
echo "Отмена"
exit 1
fi
# берем переменную content (текст который преобразовываем в QR).
content=`zenity --entry --title="Контент" --text="Введите текст, который хотите преобразовать в QR"`
# проверяем, если ответ = 0 (ок) выполняем преобразование...
if [ $? = 0 ];then
# проверяем, если не заполненно вырубаем скрипт.
if [ -z $content ];then
echo "Отмена"
exit 1
fi
# выполняем преобразования в QR командой: qrencode -s "$размер" -o "$путь"/"$имя".png "$текст".
qrencode -s "$width" -o "$path"/"$name".png "$content"
# информируем в консоль и через GUI окно о завершении преобразования.
echo "Сохроненно в $path, имя нового QR: $name.png"
zenity --info --window-icon='info' --title="Завершено!" --text="Сохроненно в $path, имя нового QR: $name.png"
# иначе вырубаем скрипт, и информируем в консоль об отмене.
else
echo "Отмена"
exit 1
fi
# если файла /usr/bin/qrencode нет (пакет qrencode не установлен), устанавливаем.
else
# включаем прогресс бар
(
echo "10" ; sleep 1
echo "50" ; sleep 1
# устанавливаем пакет qrencode, если установка с su не будет работать (*ubuntu) меняем gksu на gksudo.
gksu 'apt-get install qrencode -y' ; sleep 1
echo "100" ;
) |
zenity --progress \
--title="Установка" \
--text="Установка пакета qrencode..." \
--percentage=0
# информируем в консоль и через GUI окно о завершении установки.
echo "Установка завершена, перезапустите скрипт."
zenity --info --window-icon='info' --title="Установка завершена!" --text="Установка завершена, перезапустите скрипт."
fi
----------------------------------------------------------------------------------------------------------------------------------
И решил я это делать довольно лёгким и интересным способом как шифровать текст в виде QR кода.
При помощи QR-кода можно закодировать любую информацию, например: текст, номер телефона, ссылку на сайт или визитную карточку.
Все мы знаем что любой телефон на базе Symbian или Android обладают камерами и возможностью сканировать QR-коды и извлекать из них информацию.
Все мы знаем что любой телефон на базе Symbian или Android обладают камерами и возможностью сканировать QR-коды и извлекать из них информацию.
И даже если такое приложение не установлено, то его легко найти в сети, что собственно я и сделал для телефона на базе Android, например
Вот небольшой список программ для смартфонов, которые помогут распознать QR-код :
- для Symbian - Kaywa reader, Nokia barcode reader, I-Nigma, QuickMark, UpCode;
- для Android - Barcode Scanner, Barcode2file, QR Droid, NeoReader, ixMAT Scanner, 2D-код;
- для Maemo - mbarcode;
- для Windows Mobile - QuickMark, I-Nigma.
- для Symbian - Kaywa reader, Nokia barcode reader, I-Nigma, QuickMark, UpCode;
- для Android - Barcode Scanner, Barcode2file, QR Droid, NeoReader, ixMAT Scanner, 2D-код;
- для Maemo - mbarcode;
- для Windows Mobile - QuickMark, I-Nigma.
Итак начнем:
Для начала нам необходимо установить небольшую утилиту qrencode
наберем в терминале:
#sudo apt-get install qrencode
наберем в терминале:
#sudo apt-get install qrencode
теперь для удобства использования создадим скрипт qr.sh и разрешим выполнение файла как программы.
----------------------------------------------------------------------------------------------------------------------------------
# проверяем есть ли пакет qrencode, если есть, продолжаем...
if [ -f /usr/bin/qrencode ] ; then
# берем переменную path (путь).
path=`zenity --entry --title="Куда сохранять?" --text="Куда сохранять QR CODE? По умолчанию "$HOME", или напишите свой путь."`
# проверяем, если ответ = 0 (ок) выполняем...
if [ $? = 0 ];then
# проверяем, если не заполненно поле, то вписываем переменную $HOME - /home/ваш_пользователь.
if [ -z $path ];then
path="$HOME"
fi
# иначе вырубаем скрипт, и информируем в консоль об отмене.
else
echo "Отмена"
exit 1
fi
# берем переменную name (имя).
name=`zenity --entry --title="Имя файла?" --text="Введите имя нового QR, по умолчанию: filename"`
# проверяем, если ответ = 0 (ок) выполняем...
if [ $? = 0 ];then
# проверяем, если имя не заполненно, передаем переменной "name" дефолтное имя "filename".
if [ -z $name ];then
name="filename"
fi
# иначе вырубаем скрипт, и информируем в консоль об отмене.
else
echo "Отмена"
exit 1
fi
# берем переменную width (длинна, размер).
width=`zenity --entry --title="Какой размер?" --text="Введите размер пикселя для нового QR, по умолчанию = 3."`
# проверяем, если ответ = 0 (ок) выполняем...
if [ $? = 0 ];then
# проверяем, если размер не заполнен, передаем переменной "width" дефолтный размер = 3.
if [ -z $width ];then
width=3
fi
# иначе вырубаем скрипт, и информируем в консоль об отмене.
else
echo "Отмена"
exit 1
fi
# берем переменную content (текст который преобразовываем в QR).
content=`zenity --entry --title="Контент" --text="Введите текст, который хотите преобразовать в QR"`
# проверяем, если ответ = 0 (ок) выполняем преобразование...
if [ $? = 0 ];then
# проверяем, если не заполненно вырубаем скрипт.
if [ -z $content ];then
echo "Отмена"
exit 1
fi
# выполняем преобразования в QR командой: qrencode -s "$размер" -o "$путь"/"$имя".png "$текст".
qrencode -s "$width" -o "$path"/"$name".png "$content"
# информируем в консоль и через GUI окно о завершении преобразования.
echo "Сохроненно в $path, имя нового QR: $name.png"
zenity --info --window-icon='info' --title="Завершено!" --text="Сохроненно в $path, имя нового QR: $name.png"
# иначе вырубаем скрипт, и информируем в консоль об отмене.
else
echo "Отмена"
exit 1
fi
# если файла /usr/bin/qrencode нет (пакет qrencode не установлен), устанавливаем.
else
# включаем прогресс бар
(
echo "10" ; sleep 1
echo "50" ; sleep 1
# устанавливаем пакет qrencode, если установка с su не будет работать (*ubuntu) меняем gksu на gksudo.
gksu 'apt-get install qrencode -y' ; sleep 1
echo "100" ;
) |
zenity --progress \
--title="Установка" \
--text="Установка пакета qrencode..." \
--percentage=0
# информируем в консоль и через GUI окно о завершении установки.
echo "Установка завершена, перезапустите скрипт."
zenity --info --window-icon='info' --title="Установка завершена!" --text="Установка завершена, перезапустите скрипт."
fi
----------------------------------------------------------------------------------------------------------------------------------
Данный скрипт я расположил в домашней директории.
/home/fin/qr.sh
/home/fin/qr.sh
Ну вот собственно и всё. Мы можем приступить к созданию QR кодов
На данном примере я буду демонстрировать как сгенерировать QR код с гиперссылкой на сайт http://jabga.ru/
Запускаем скрипт
Куда сохранять
Имя файла
Укажите размер QR кода
Текст или ссылка для шифрования
Готово
Ну вот что у нас получилось. Можете проверить результат сканером с монитора Вашего компьютера.
Enjoy ;)
Мне больше нравится так. И повесить на глобальную горячую клавишу.
ОтветитьУдалить#!/bin/sh
FILE=`mktemp /tmp/qrcXXXX`
xclip -o >$FILE
if [ ! -s $FILE ] ; then
xclip -selection c -o >$FILE
fi
qrencode -s 10 -lL -o /tmp/qrcode.png < $FILE
rm $FILE
eom /tmp/qrcode.png
#xdg-open /tmp/qrcode.png
rm /tmp/qrcode.png