Всем привет!
Решил выложить небольшие свои наработки для изучающих английский язык.
1. скрипт для создания словаря (навеяно этой
темой и
статьей)
#!/usr/bin/bash
eng=$(xsel -o)
rus=$(trans :ru -no-ansi -b "${eng}")
echo "${eng}:${rus}" >> dictionary.log
скрипт создает в той же папке, где и находится файл со словарем == разделитель == :
Работает так:
- прописываем сочетание клавиш для скрипта
- выделяем английский текст
- нажимаем сочетание клавиш, и скрипт заполняет словарь
2. скрипт для отработки слов (первый параметр == файл со словарем (или любой другой в формате engWord:rusWord, где : - это разделитель (может быть и любой другой), второй параметр == разделитель)
например для этого файла, где разделитель :, запуск скрипта будет выглядеть так:
./scriptName /path/to/dictionary.log \:
#!/usr/bin/bash
OLD_IFS=$IFS
IFS=$'\n'
declare -a errors_array
j=0
cat "$1" | shuf > tmp_file
cat "$1" | shuf > tmp_file
cat "$1" | shuf > tmp_file
SEPARATOR="$2"
echo "++++++++++++++++++++++++++++++++++++++++++++"
echo "Проверка на перевод с английского на русский"
echo "++++++++++++++++++++++++++++++++++++++++++++"
for line in $(cat tmp_file); do
english_praise=$(echo ${line} | cut -d${SEPARATOR} -f1)
russian_praise=$(echo ${line} | cut -d${SEPARATOR} -f2)
echo "фраза на английском звучит так: ${english_praise}"
read -p "введите ответ на русском: " praise
echo "++++++++++++++++++++++++++++++++++++++++++++"
echo -e "\tправильный ответ: ${russian_praise}"
echo "++++++++++++++++++++++++++++++++++++++++++++"
done
cat "$1" | shuf > tmp_file
cat "$1" | shuf > tmp_file
cat "$1" | shuf > tmp_file
echo "++++++++++++++++++++++++++++++++++++++++++++"
echo "Проверка на перевод с русского на английский:"
echo "++++++++++++++++++++++++++++++++++++++++++++"
for line in $(cat tmp_file); do
english_praise=$(echo ${line} | cut -d${SEPARATOR} -f1)
russian_praise=$(echo ${line} | cut -d${SEPARATOR} -f2)
echo "фраза на русском звучит так: ${russian_praise}"
read -p "введите ответ на английском: " praise
if [ "${english_praise}" != "${praise}" ]; then
echo -e "\tОШИБКА!"
echo -e "\tправильный ответ: ${english_praise}"
errors_array[$j]="${english_praise} --> ${russian_praise}"
((j++))
else
echo -e "\t\tВЕРНО!!"
fi
done
echo "вы допустили следующие ошибки:"
echo "=============================="
for ((i=0;i<${#errors_array[@]};i++)); do
echo
echo "${errors_array[$i]}"
done
IFS=$OLD_IFS
rm tmp_file