Содержание

начало / Блог компании RUVDS.com / Хабр

Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

Сегодня поговорим о bash-скриптах. Это — сценарии командной строки, написанные для оболочки bash. Существуют и другие оболочки, например — zsh, tcsh, ksh, но мы сосредоточимся на bash. Этот материал предназначен для всех желающих, единственное условие — умение работать в командной строке Linux.



Сценарии командной строки — это наборы тех же самых команд, которые можно вводить с клавиатуры, собранные в файлы и объединённые некоей общей целью.

При этом результаты работы команд могут представлять либо самостоятельную ценность, либо служить входными данными для других команд. Сценарии — это мощный способ автоматизации часто выполняемых действий.

Итак, если говорить о командной строке, она позволяет выполнить несколько команд за один раз, введя их через точку с запятой:

pwd ; whoami

На самом деле, если вы опробовали это в своём терминале, ваш первый bash-скрипт, в котором задействованы две команды, уже написан. Работает он так. Сначала команда pwd выводит на экран сведения о текущей рабочей директории, потом команда whoamiпоказывает данные о пользователе, под которым вы вошли в систему.

Используя подобный подход, вы можете совмещать сколько угодно команд в одной строке, ограничение — лишь в максимальном количестве аргументов, которое можно передать программе. Определить это ограничение можно с помощью такой команды:

getconf ARG_MAX

Командная строка — отличный инструмент, но команды в неё приходится вводить каждый раз, когда в них возникает необходимость. Что если записать набор команд в файл и просто вызывать этот файл для их выполнения? Собственно говоря, тот файл, о котором мы говорим, и называется сценарием командной строки.

Как устроены bash-скрипты


Создайте пустой файл с использованием команды touch. В его первой строке нужно указать, какую именно оболочку мы собираемся использовать. Нас интересует bash, поэтому первая строка файла будет такой:
#!/bin/bash

В других строках этого файла символ решётки используется для обозначения комментариев, которые оболочка не обрабатывает. Однако, первая строка — это особый случай, здесь решётка, за которой следует восклицательный знак (эту последовательность называют шебанг) и путь к
bash
, указывают системе на то, что сценарий создан именно для bash.

Команды оболочки отделяются знаком перевода строки, комментарии выделяют знаком решётки. Вот как это выглядит:

#!/bin/bash
# This is a comment
pwd
whoami

Тут, так же, как и в командной строке, можно записывать команды в одной строке, разделяя точкой с запятой. Однако, если писать команды на разных строках, файл легче читать. В любом случае оболочка их обработает.

Установка разрешений для файла сценария


Сохраните файл, дав ему имя myscript, и работа по созданию bash-скрипта почти закончена. Сейчас осталось лишь сделать этот файл исполняемым, иначе, попытавшись его запустить, вы столкнётесь с ошибкой
Permission denied
.
Попытка запуска файла сценария с неправильно настроенными разрешениями

Сделаем файл исполняемым:

chmod +x ./myscript

Теперь попытаемся его выполнить:
./myscript

После настройки разрешений всё работает как надо.
Успешный запуск bash-скрипта

Вывод сообщений


Для вывода текста в консоль Linux применяется команда echo. Воспользуемся знанием этого факта и отредактируем наш скрипт, добавив пояснения к данным, которые выводят уже имеющиеся в нём команды:
#!/bin/bash
# our comment is here
echo "The current directory is:"
pwd
echo "The user logged in is:"
whoami

Вот что получится после запуска обновлённого скрипта.

Вывод сообщений из скрипта

Теперь мы можем выводить поясняющие надписи, используя команду echo. Если вы не знаете, как отредактировать файл, пользуясь средствами Linux, или раньше не встречались с командой echo, взгляните на этот материал.

Использование переменных


Переменные позволяют хранить в файле сценария информацию, например — результаты работы команд для использования их другими командами.

Нет ничего плохого в исполнении отдельных команд без хранения результатов их работы, но возможности такого подхода весьма ограничены.

Существуют два типа переменных, которые можно использовать в bash-скриптах:

  • Переменные среды
  • Пользовательские переменные

Переменные среды


Иногда в командах оболочки нужно работать с некими системными данными. Вот, например, как вывести домашнюю директорию текущего пользователя:
#!/bin/bash # display user home echo "Home for the current user is: $HOME"

Обратите внимание на то, что мы можем использовать системную переменную $HOME в двойных кавычках, это не помешает системе её распознать. Вот что получится, если выполнить вышеприведённый сценарий.
Использование переменной среды в сценарии

А что если надо вывести на экран значок доллара? Попробуем так:

echo "I have $1 in my pocket"

Система обнаружит знак доллара в строке, ограниченной кавычками, и решит, что мы сослались на переменную. Скрипт попытается вывести на экран значение неопределённой переменной $1. Это не то, что нам нужно. Что делать?

В подобной ситуации поможет использование управляющего символа, обратной косой черты, перед знаком доллара:

echo "I have \$1 in my pocket"

Теперь сценарий выведет именно то, что ожидается.
Использование управляющей последовательности для вывода знака доллара

Пользовательские переменные


В дополнение к переменным среды, bash-скрипты позволяют задавать и использовать в сценарии собственные переменные. Подобные переменные хранят значение до тех пор, пока не завершится выполнение сценария.

Как и в случае с системными переменными, к пользовательским переменным можно обращаться, используя знак доллара:
TNW-CUS-FMP — промо-код на 10% скидку на наши услуги, доступен для активации в течение 7 дней

#!/bin/bash
# testing variables
grade=5
person="Adam"
echo "$person is a good boy, he is in grade $grade"

Вот что получится после запуска такого сценария.
Пользовательские переменные в сценарии

Подстановка команд


Одна из самых полезных возможностей bash-скриптов — это возможность извлекать информацию из вывода команд и назначать её переменным, что позволяет использовать эту информацию где угодно в файле сценария.

Сделать это можно двумя способами.

  • С помощью значка обратного апострофа «`»
  • С помощью конструкции $()

Используя первый подход, проследите за тем, чтобы вместо обратного апострофа не ввести одиночную кавычку. Команду нужно заключить в два таких значка:
mydir=`pwd`

При втором подходе то же самое записывают так:
mydir=$(pwd)

А скрипт, в итоге, может выглядеть так:
#!/bin/bash mydir=$(pwd) echo $mydir

В ходе его работы вывод команды pwdбудет сохранён в переменной mydir, содержимое которой, с помощью команды echo, попадёт в консоль.
Скрипт, сохраняющий результаты работы команды в переменной

Математические операции


Для выполнения математических операций в файле скрипта можно использовать конструкцию вида $((a+b)):
#!/bin/bash
var1=$(( 5 + 5 ))
echo $var1
var2=$(( $var1 * 2 ))
echo $var2


Математические операции в сценарии

Управляющая конструкция if-then


В некоторых сценариях требуется управлять потоком исполнения команд. Например, если некое значение больше пяти, нужно выполнить одно действие, в противном случае — другое. Подобное применимо в очень многих ситуациях, и здесь нам поможет управляющая конструкция
if-then
. В наиболее простом виде она выглядит так:
if команда
then
команды
fi

А вот рабочий пример:
#!/bin/bash
if pwd
then
echo "It works"
fi

В данном случае, если выполнение команды pwdзавершится успешно, в консоль будет выведен текст «it works».

Воспользуемся имеющимися у нас знаниями и напишем более сложный сценарий. Скажем, надо найти некоего пользователя в /etc/passwd, и если найти его удалось, сообщить о том, что он существует.

#!/bin/bash
user=likegeeks
if grep $user /etc/passwd
then
echo "The user $user Exists"
fi

Вот что получается после запуска этого скрипта.
Поиск пользователя

Здесь мы воспользовались командой

grepдля поиска пользователя в файле /etc/passwd. Если команда grepвам незнакома, её описание можно найти здесь.

В этом примере, если пользователь найден, скрипт выведет соответствующее сообщение. А если найти пользователя не удалось? В данном случае скрипт просто завершит выполнение, ничего нам не сообщив. Хотелось бы, чтобы он сказал нам и об этом, поэтому усовершенствуем код.

Управляющая конструкция if-then-else


Для того, чтобы программа смогла сообщить и о результатах успешного поиска, и о неудаче, воспользуемся конструкцией if-then-else. Вот как она устроена:
if команда
then
команды
else
команды
fi

Если первая команда возвратит ноль, что означает её успешное выполнение, условие окажется истинным и выполнение не пойдёт по ветке
else
. В противном случае, если будет возвращено что-то, отличающееся от нуля, что будет означать неудачу, или ложный результат, будут выполнены команды, расположенные после else.

Напишем такой скрипт:

#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
else
echo "The user $user doesn’t exist"
fi

Его исполнение пошло по ветке else.
Запуск скрипта с конструкцией if-then-else

Ну что же, продолжаем двигаться дальше и зададимся вопросом о более сложных условиях. Что если надо проверить не одно условие, а несколько? Например, если нужный пользователь найден, надо вывести одно сообщение, если выполняется ещё какое-то условие — ещё одно сообщение, и так далее.

В подобной ситуации нам помогут вложенные условия. Выглядит это так:

if команда1
then
команды
elif команда2
then
команды
fi

Если первая команда вернёт ноль, что говорит о её успешном выполнении, выполнятся команды в первом блоке then, иначе, если первое условие окажется ложным, и если вторая команда вернёт ноль, выполнится второй блок кода.
#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
elif ls /home
then
echo "The user doesn’t exist but anyway there is a directory under /home"
fi

В подобном скрипте можно, например, создавать нового пользователя с помощью команды useradd, если поиск не дал результатов, или делать ещё что-нибудь полезное.

Сравнение чисел


В скриптах можно сравнивать числовые значения. Ниже приведён список соответствующих команд.
n1 -eq n2Возвращает истинное значение, если n1 равно n2.
n1 -ge n2 Возвращает истинное значение, если n1больше или равно n2.
n1 -gt n2Возвращает истинное значение, если n1 больше n2.
n1 -le n2Возвращает истинное значение, если n1меньше или равно n2.
n1 -lt n2Возвращает истинное значение, если n1 меньше n2.
n1 -ne n2Возвращает истинное значение, если n1не равно n2.

В качестве примера опробуем один из операторов сравнения. Обратите внимание на то, что выражение заключено в квадратные скобки.
#!/bin/bash
val1=6
if [ $val1 -gt 5 ]
then
echo "The test value $val1 is greater than 5"
else
echo "The test value $val1 is not greater than 5"
fi

Вот что выведет эта команда.
Сравнение чисел в скриптах

Значение переменной val1больше чем 5, в итоге выполняется ветвь thenоператора сравнения и в консоль выводится соответствующее сообщение.

Сравнение строк


В сценариях можно сравнивать и строковые значения. Операторы сравнения выглядят довольно просто, однако у операций сравнения строк есть определённые особенности, которых мы коснёмся ниже. Вот список операторов.
str1 = str2 Проверяет строки на равенство, возвращает истину, если строки идентичны.
str1 != str2Возвращает истину, если строки не идентичны.
str1 < str2Возвращает истину, если str1меньше, чем str2.
str1 > str2 Возвращает истину, если str1больше, чем str2.
-n str1 Возвращает истину, если длина str1больше нуля.
-z str1Возвращает истину, если длина str1равна нулю.

Вот пример сравнения строк в сценарии:
#!/bin/bash
user ="likegeeks"
if [$user = $USER]
then
echo "The user $user  is the current logged in user"
fi

В результате выполнения скрипта получим следующее.
Сравнение строк в скриптах

Вот одна особенность сравнения строк, о которой стоит упомянуть. А именно, операторы «>» и «<» необходимо экранировать с помощью обратной косой черты, иначе скрипт будет работать неправильно, хотя сообщений об ошибках и не появится. Скрипт интерпретирует знак «>» как команду перенаправления вывода.

Вот как работа с этими операторами выглядит в коде:

#!/bin/bash
val1=text
val2="another text"
if [ $val1 \> $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

Вот результаты работы скрипта.
Сравнение строк, выведенное предупреждение

Обратите внимание на то, что скрипт, хотя и выполняется, выдаёт предупреждение:

./myscript: line 5: [: too many arguments

Для того, чтобы избавиться от этого предупреждения, заключим $val2 в двойные кавычки:
#!/bin/bash
val1=text
val2="another text"
if [ $val1 \> "$val2" ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

Теперь всё работает как надо.
Сравнение строк

Ещё одна особенность операторов «>» и «<» заключается в том, как они работают с символами в верхнем и нижнем регистрах. Для того, чтобы понять эту особенность, подготовим текстовый файл с таким содержимым:

Likegeeks
likegeeks

Сохраним его, дав имя myfile, после чего выполним в терминале такую команду:
sort myfile

Она отсортирует строки из файла так:
likegeeks
Likegeeks

Команда sort, по умолчанию, сортирует строки по возрастанию, то есть строчная буква в нашем примере меньше прописной. Теперь подготовим скрипт, который будет сравнивать те же строки:
#!/bin/bash
val1=Likegeeks
val2=likegeeks
if [ $val1 \> $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

Если его запустить, окажется, что всё наоборот — строчная буква теперь больше прописной.
Команда sort и сравнение строк в файле сценария

В командах сравнения прописные буквы меньше строчных. Сравнение строк здесь выполняется путём сравнения ASCII-кодов символов, порядок сортировки, таким образом, зависит от кодов символов.

Команда sort, в свою очередь, использует порядок сортировки, заданный в настройках системного языка.

Проверки файлов


Пожалуй, нижеприведённые команды используются в bash-скриптах чаще всего. Они позволяют проверять различные условия, касающиеся файлов. Вот список этих команд.
-d fileПроверяет, существует ли файл, и является ли он директорией.
-e fileПроверяет, существует ли файл.
-f file Проверяет, существует ли файл, и является ли он файлом.
-r fileПроверяет, существует ли файл, и доступен ли он для чтения.
-s file Проверяет, существует ли файл, и не является ли он пустым.
-w fileПроверяет, существует ли файл, и доступен ли он для записи.
-x fileПроверяет, существует ли файл, и является ли он исполняемым.
file1 -nt file2 Проверяет, новее ли file1, чем file2.
file1 -ot file2Проверяет, старше ли file1, чем file2.
-O file Проверяет, существует ли файл, и является ли его владельцем текущий пользователь.
-G fileПроверяет, существует ли файл, и соответствует ли его идентификатор группы идентификатору группы текущего пользователя.

Эти команды, как впрочем, и многие другие рассмотренные сегодня, несложно запомнить. Их имена, являясь сокращениями от различных слов, прямо указывают на выполняемые ими проверки.

Опробуем одну из команд на практике:

#!/bin/bash
mydir=/home/likegeeks
if [ -d $mydir ]
then
echo "The $mydir directory exists"
cd $ mydir
ls
else
echo "The $mydir directory does not exist"
fi

Этот скрипт, для существующей директории, выведет её содержимое.
Вывод содержимого директории

Полагаем, с остальными командами вы сможете поэкспериментировать самостоятельно, все они применяются по тому же принципу.

Итоги


Сегодня мы рассказали о том, как приступить к написанию bash-скриптов и рассмотрели некоторые базовые вещи. На самом деле, тема bash-программирования огромна. Эта статья является переводом первой части большой серии из 11 материалов. Если вы хотите продолжения прямо сейчас — вот список оригиналов этих материалов. Для удобства сюда включён и тот, перевод которого вы только что прочли.
  1. Bash Script Step By Step — здесь речь идёт о том, как начать создание bash-скриптов, рассмотрено использование переменных, описаны условные конструкции, вычисления, сравнения чисел, строк, выяснение сведений о файлах.
  2. Bash Scripting Part 2, Bash the awesome — тут раскрываются особенности работы с циклами for и while.
  3. Bash Scripting Part 3, Parameters & options — этот материал посвящён параметрам командной строки и ключам, которые можно передавать скриптам, работе с данными, которые вводит пользователь, и которые можно читать из файлов.
  4. Bash Scripting Part 4, Input & Output — здесь речь идёт о дескрипторах файлов и о работе с ними, о потоках ввода, вывода, ошибок, о перенаправлении вывода.
  5. Bash Scripting Part 5, Sighals & Jobs — этот материал посвящён сигналам Linux, их обработке в скриптах, запуску сценариев по расписанию.
  6. Bash Scripting Part 6, Functions — тут можно узнать о создании и использовании функций в скриптах, о разработке библиотек.
  7. Bash Scripting Part 7, Using sed — эта статья посвящена работе с потоковым текстовым редактором sed.
  8. Bash Scripting Part 8, Using awk — данный материал посвящён программированию на языке обработки данных awk.
  9. Bash Scripting Part 9, Regular Expressions — тут можно почитать об использовании регулярных выражений в bash-скриптах.
  10. Bash Scripting Part 10, Practical Examples — здесь приведены приёмы работы с сообщениями, которые можно отправлять пользователям, а так же методика мониторинга диска.
  11. Bash Scripting Part 11, Expect Command — этот материал посвящён средству Expect, с помощью которого можно автоматизировать взаимодействие с интерактивными утилитами. В частности, здесь идёт речь об expect-скриптах и об их взаимодействии с bash-скриптами и другими программами.

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

Уважаемые читатели! Просим гуру bash-программирования рассказать о том, как они добрались до вершин мастерства, поделиться секретами, а от тех, кто только что написал свой первый скрипт, ждём впечатлений.

19 полезных shell-скриптов на все случаи жизни — «Хакер»

Содержание статьи

Командная строка и те невообразимые вещи, которые с ее помощью можно творить, — визитная карточка UNIX и всех ее наследников. А где есть командная строка, там есть скрипты. И сегодня… нет, мы не будем учиться писать скрипты, мы рассмотрим наиболее полезные из них, те, что ты сможешь применять ежедневно для решения самого разного круга задач, начиная от сводки погоды и веб-сервера в одну строку и заканчивая ботом для твиттера в десять строк и скриптом для автоматического запуска любого торрент-клиента.

Сразу оговорюсь, что я вовсе не приверженец шаманизма и ни в коем случае не призываю тебя сидеть в зелено-черной консоли и набирать кучу букв, чтобы выполнить действия, для которых в графическом интерфейсе достаточно навести мышку на нужный элемент. Однако я убежден, что для решения многих задач консоль и скрипты годятся гораздо лучше графического интерфейса и поэтому пренебрегать ими никак нельзя. Тем более что любая DE позволяет создать для скрипта иконку, так что для его запуска даже не надо будет открывать консоль.

 

Простые примеры

Итак, не разглагольствуя понапрасну, сразу перейдем к примерам:

$ curl ifconfig.co

Эта простая команда покажет тебе внешний IP — идеальный вариант, если в Сеть ты ходишь через роутер. Все, что она делает, — просто обращается к серверу ifconfig.co, который возвращает обратно IP-шник одной строкой вместо полноценной веб-страницы.

И да, это вовсе не скрипт, это просто команда, но, чтобы превратить команду в скрипт, достаточно поместить ее в текстовый файл и первой строкой добавить так называемый шебанг, то есть символы #!, за которыми следует имя командного интерпретатора:

#!/bin/bash
curl ifconfig. co

Далее скрипт сохраняем в каталог ~/bin и назначаем права на исполнение:

$ chmod +x ~/bin/myip.sh

Теперь его можно вызывать из командной строки командой myip.sh.

Идем дальше.

#!/bin/sh
curl -4 wttr.in/Moscow

Этот скрипт позволяет получить сводку погоды на четыре дня. Принцип тут такой же, как в случае с ifconfig.co.

Сводка погоды в консоли
#!/bin/sh
dig +short txt $1.wp.dg.cx

А так можно получить краткое описание чего-либо в Википедии, причем с помощью DNS-запроса вместо обращения к веб-серверу. Кстати, веб-сервер через командную строку тоже очень легко создать:

#!/bin/sh
while ( nc -l 80 < file.html > : ) ; do : ; done

Данный скрипт основан на утилите netcat (nc), которую называют швейцарским армейским ножом для сетевых операций. Скрипт запускает цикл, выполняющий команду nc, которая слушает 80-й порт и в ответ на запрос отдает file. html, отправляя переданный запрос в никуда (символ означает noop, то есть пустую операцию).

С помощью простых скриптов и команд можно запросто слушать интернет-радио:

#!/bin/sh
mpv --volume=50 -playlist ~/16bit.fm_128.m3u

Естественно, плей-лист в формате M3U необходимо заранее скачать с сайта радиостанции. Кстати, если запустить MPlayer с аргументом —input-ipc-server=/tmp/mpvsocket, им можно будет управлять, записывая команды в файл. Например, настроить громкость:

echo 'volume +10' | socat - /tmp/mpvsocket

Создай два скрипта: один для запуска, другой для остановки радио (со строкой killall mpv), повесь их на рабочий стол и настрой горячие клавиши DE на управление воспроизведением. Вуаля, у тебя готов плеер для интернет-радио, запустить который можно, просто кликнув по иконке на рабочем столе. И он почти не будет расходовать память или занимать трей.

Но отвлечемся от сетевых операций и вернемся к локальным делам.

#!/bin/sh
tar -czf "../${PWD##*/}.tar.gz" .

Это один из моих любимых скриптов. Он создает архив tar.gz текущего каталога. Особого внимания здесь заслуживает конструкция ${PWD##*/}, которая берет полный путь до текущего каталога (переменная $PWD) и удаляет из него первую часть вплоть до последнего слеша, оставляя, таким образом, только имя самого каталога. Далее к нему добавляется расширение tar.gz. Более подробно о таких конструкциях ты можешь прочитать в man bash.

#!/bin/sh
while true; do
    inotifywait -r -e MODIFY КАТАЛОГ && ТВОЯ_КОМАНДА
done

А это уже скрипт, который запускает команду в ответ на изменение файлов в каталоге. Ее можно использовать для множества разных целей, например для автоматического включения плеера при сохранении MP3-файла. Или просто выводить уведомление на десктоп, используя в качестве команды notify-send:

notify-send "Файл изменен"

 

Десктоп

Раз уж мы заговорили о десктопе, то продолжим. &]+jpg’ |\ shuf -n 1 |\ xargs wget -O background.jpg feh —bg-fill background.jpg

Здесь все просто. С помощью wget скрипт загружает страницу www.reddit.com/r/wallpaper, передает ее grep, который ищет на ней ссылки на imgur, выбирает случайную ссылку с помощью shuf, загружает ее опять же с помощью wget и устанавливает в качестве обоев, используя команду feh (это такой миниатюрный просмотрщик изображений, его нужно предварительно установить). Скрипт можно добавить на рабочий стол, и тогда по клику у тебя будут меняться обои.

#!/bin/sh
state=`synclient | grep TouchpadOff | cut -d '=' -f 2`
if [ $state = "1" ]; then
    synclient TouchpadOff=0
else
    synclient TouchpadOff=1
fi

А это скрипт для включения/выключения тачпада ноутбука: включает, если отключен, и наоборот. В своей работе использует утилиту synclient, позволяющую управлять тачпадами производства Synaptics (90% тачпадов делают они). При запуске без аргументов утилита выводит различную информацию о тачпаде, в том числе строку TouchpadOff = 1, если он активирован, и TouchpadOff = 2, если отключен. Скрипт находит это значение и в зависимости от состояния тачпада включает или отключает его.

!#/bin/bash
mpv tv:// -frames 3 -vo jpeg
mv 00000003.jpg photo.jpg
rm -f 0000*.jpg

А так можно сделать снимок с помощью веб-камеры. Скрипт использует видеоплеер mpv, чтобы записать первые три кадра, снятые камерой, в JPEG-файлы с именами 0000000.jpg, 00000002.jpg, 00000003.jpg, затем переименовывает третий снимок в файл photo.jpg, а остальные удаляет. Три снимка необходимы для того, чтобы камера успела провести инициализацию, обычно первые два получаются просто черными. Иногда изображение выходит перевернутым; чтобы это исправить, mpv следует запускать с флагом -vf flip:

$ mpv tv:// -frames 3 -vf flip -vo jpeg

Ту же самую команду можно использовать для создания полноценной камеры слежения, которая делает снимки в моменты, когда юзер прикасается к мыши:

#!/bin/bash
while true; do
    sudo cat /dev/input/mouse0 | read -n1
    mpv tv:// -frames 3 -vo jpeg
    mv 00000003. jpg `date +%F-%H-%M`.jpg
    rm -f 0000*.jpg
    sleep 10
done

Скрипт входит в бесконечный цикл, ожидая данные на устройстве /dev/input/mouse0. Если данные есть, значит, мышь сдвинулась или была нажата одна из ее клавиш. После этого он использует mpv, чтобы сделать три снимка, дает третьему снимку имя текущей даты и удаляет остальные.

Для записи полноценного видео с веб-камеры можно использовать такой скрипт:

#!/bin/bash
mencoder tv:// -tv driver=v4l2:width=800:height=600:device=/dev/video0:fps=30:outfmt=yuy2:forceaudio:alsa:adevice=hw.2,0 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1800 -ffourcc xvid -oac mp3lame -lameopts cbr=128 -o video.avi

В результате ты получишь video.avi в формате MPEG4 с битрейтом 1800 и аудиодорожкой в формате MP3 с битрейтом 128.

#!/bin/bash
ffmpeg -f x11grab -r 25 -s 1366x768 -i :0.0 screencast.mpg

А так ты можешь записать скринкаст. 1366×768 — разрешение рабочего стола. Просто сделать скриншот отдельного окна всегда можно с помощью команды import:

import screenshot.png

После ее запуска значок мыши изменится на «прицел», с помощью которого можно выбрать окно. Повесив эту команду на клавиатурную комбинацию, ты получишь практически идеальную систему снятия скриншотов, абсолютно не жрущую память, как это делают специализированные приложения, постоянно висящие в трее.

Подключить и настроить внешний монитор тоже можно из командной строки:

#!/bin/sh

if [ -z "$1" ]; then
    exit
fi

if [ $1 == "off" ]; then
    xrandr --output VGA-0 --off
    xrandr -s 0
else if [ $1 == "on"]; then
    xrandr --output LVDS --auto --primary --output VGA-0 --auto --left-of LVDS
    xrandr --newmode "1920x1080" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
    xrandr --addmode VGA-0 1920x1080
    xrandr --output VGA-0 --mode 1920x1080
fi

xrandr --dpi 96

Данный скрипт предполагает, что основной монитор носит имя LVDS, а внешний — VGA-0. Это стандартная ситуация для ноутбуков; если ты не уверен, можешь проверить вывод команды xrandr: при передаче скрипту аргумента off он отключает внешний монитор, аргумент on, в свою очередь, включает его, располагая по левую сторону от основного (аргумент —left-of LVDS в первой команде). Далее скрипт добавляет новую конфигурацию для монитора с разрешением 1920 x 1080 и активирует его. В самом конце скрипт устанавливает дефолтное значение DPI — как показывает практика, при подключении монитора с другим разрешением оно часто слетает.

На самом деле в большинстве случаев команды xrandr —newmode … и xrandr —addmode … не нужны, так как Xorg может получить конфигурацию монитора и поддерживаемые им разрешения с помощью EDID. Иногда, однако, этого не происходит, и строку конфигурации, указываемую после аргумента —newmode, приходится генерировать самостоятельно с помощью инструмента cvt:

$ cvt 1920 1080

Он же поможет сгенерировать нестандартное разрешение, «не поддерживаемое» монитором по умолчанию.

 

Google, Twitter, Dropbox и торренты

Отвлечемся от десктопных дел и поговорим о сетевых сервисах. Начнем, разумеется, с Google. Вот так будет выглядеть скрипт для получения первых десяти результатов поиска:

#!/bin/bash
Q="[email protected]"
URL='https://www.google.de/search?tbs=li:1&q='
AGENT="Mozilla/4.0"
stream=$(curl -A "$AGENT" -skLm 10 "${GOOG_URL}${Q//\ /+}" | grep -oP '\/url\?q=.+?&amp' | sed 's|/url?q=||; s|&amp||')
echo -e "${stream//\%/\x}"

Скрипт делает запрос к Google с помощью уже знакомого нам curl, заменяя пробелы в поисковой строке на плюсы. Далее выискивает в ответном HTML ссылки и выводит их на экран. Все просто, хоть и кажется сложным.

Ищем в Google из командной строки

Второй популярный сервис — YouTube:

#!/bin/bash
mpv -fs -quiet `youtube-dl -g "$1"`

Здесь все совсем просто. Скрипт всего лишь проигрывает видео с указанным в аргументе ID с помощью плеера mpv. Естественно, youtube-dl придется установить заранее.

Как насчет твиттера? Нет проблем, вот полноценный бот, который на входе принимает команду, выполняет ее с помощью командного интерпретатора и отправляет результат указанному юзеру.

#!/bin/bash
USER="ТВОЙ_НИК"
while true; do
    CMD=`echo "/dma +1" | ttytter -script | sed 's/\[.*\]\ //'
    if [ $CMD != $OLD_CMD ]; then
        REPL=`$CMD`
        echo "/dm $USER ${REPL:0:140}" | ttytter -script
        CMD = $OLD_COMD
    fi
    sleep 60
done

Скрипт использует консольный клиент ttytter, читая в цикле последнее direct message, далее он проверяет, не была ли такая команда уже выполнена, и, если нет, выполняет ее и отправляет указанному в переменной USER пользователю, попутно обрезая до 140 символов.

Чтобы все заработало как надо, тебе придется установить ttytter, запустить его, ввести приведенную им ссылку в адресную строку браузера, скопировать показанный браузером ключ аутентификации и ввести его в ttytter. Естественно, перед тем как это сделать, следует завести для бота отдельного юзера и залогиниться под его учеткой.

Ttytter запрашивает ключ

Твиттер можно использовать не только для выполнения команд, но и для мониторинга машины. Следующий скрипт отправляет в ленту сообщение с информацией о состоянии машины (имя хоста, uptime, нагрузка, свободная память и нагрузка на CPU):

#!/bin/bash

HOST=`hostname -s`
UP=`uptime | cut -d" " -f4,5 | cut -d"," -f1`
LOAD=`uptime | cut -d":" -f5,6`
MEM=`ps aux | awk '{ sum += $4 }; END { print sum }'`
CPU=`ps aux | awk '{ sum += $3 }; END { print sum }'`

tweet="Host: ${HOST}, uptime: ${UP}, cpu: ${CPU}%, memory: ${MEM}%, loadavg ${LOAD}"

if [ $(echo "${tweet}" | wc -c) -gt 140 ]; then
    echo "FATAL: The tweet is longer than 140 characters!"
    exit 1
fi

echo $tweet | ttytter -script
Мониторинг машины с помощью Twitter

Ну и под конец приведу скрипт, не связанный с сетевыми сервисами, но имеющий прямое отношение к сетям и к тому, зачем мы обычно их используем. Это скрипт для запуска и остановки торрент-клиента во время простоя машины:

#!/bin/bash

IDLE=600000
STOPCMD="transmission-remote -S"
STARTCMD="transmission-remote -s"

STOPPED="yes"
while true; do
    if [ `xprintidle` -gt $IDLE ]; then
        if [ $STOPPED = "yes" ]; then
            $STARTCMD
            STOPPED="no"
        fi
    else
        if [ $STOPPED = "no" ]; then
            $STOPCMD
            STOPPED="yes"
        fi
    fi
    sleep 60
done

Скрипт уходит в бесконечный цикл, каждую минуту проверяя, сколько миллисекунд прошло с момента, когда юзер что-либо делал (для этого используется команда xprintidle). Если прошло уже 600 000 мс (десять минут), скрипт выполняет команду, указанную в переменной STARTCMD. В противном случае он выполнит команду STOPCMD, но только тогда, когда до нее была выполнена команда STARTCMD. Если кратко: ничего не делаешь за компом десять минут — запускается STARTCMD, в данном случае это команда запуска всех закачек с помощью Transmission, если нет — приостановка всех закачек. Не любишь Transmission? Нет проблем, вот команды для Deluge:

STOPCMD="deluge-console pause \*"
STARTCMD="deluge-console resume \*"

 

Вместо выводов

Не удивлюсь, если все описанное в статье покажется тебе очередным велосипедостроением, и даже соглашусь с таким мнением. Все-таки современный Linux — это не та система для сумасшедших экспериментаторов, какой она была пятнадцать лет назад. Сегодня для каждой задачи можно найти отдельный, отлаженный и хорошо работающий инструмент, в том числе графический. Другое дело, что не совсем понятно, стоит ли захламлять систему тяжеловесными написанными на Python приложениями с кучей зависимостей, когда ту же задачу легко решить с помощью простенького скрипта.

Каким путем пойти — выбирать тебе. Встанешь ли ты на темную сторону или выберешь путь джедая?

telnet towel.blinkenlights.nl

Скрипты: введение для начинающих — ltwood

Что такое скрипт

Командная строка и утилиты командной строки во многих задачах оказываются значительно более удобным средством, чем самый изощренный графический интерфейс. Повторяющиеся действия, особенно если они осложнены минимальной логикой, оказываются простыми с точки зрения средств командной строки и весьма сложными и нередко требующими специфической поддержки с точки зрения GUI.

Для эффективного использования командной строки необходим т.н. «язык-клей», позволяющий связывать («склеивать») последовательности команд операционной системы и вызовов утилит в единую программу. Такой «язык-клей» часто называют скриптовым языком, а написанные на нем программы — скриптами. На скриптовые языки часто также возлагают простые задачи по преобразованию данных из выходного формата одной программы во входной формат другой.

В каждой операционной системе есть свой основной скриптовой язык, обычно называемый языком командного интерпретатора. Удобство и выразительная сила таких языков может изменяться от системы к системе в очень широких пределах. Убогий и эклектичный командный язык интерпретатора cmd характерен для платформы win32; мощный, но чрезвычайно запутанный (и тоже эклектичный) язык интерпретатора bash характерен для unix-подобных систем. В обоих случаях стандартный скриптовой язык не обеспечивает удобной среды для выполнения повседневных задач средней сложности.

В последнее время наблюдается тенденция перехода к использованию для написания скриптов специфических скриптовых языков, сочетающих удобный доступ к ресурсам операционной системы с продуманным синтаксисом и удобными встроенными структурами данных. Одним из первых таких языков был интерпретируемый язык Perl.

Следует отметить, что выше говорилось только о скриптах, автоматизирующих те рутинные операции, которые обычно выполняются пользователем в среде командного интерпретатора операционной системы. В этом случае скрипт фактически выполняет последовательность файловых операций, которые при обычном подходе пользователь мог бы вводить вручную с консоли. Тем не менее, скрипты и скриптовые языки используются не только в этом контексте.

Встраивание и расширение

Часто нам приходится иметь дело с программой, предоставляющей некоторый набор возможностей по оперированию интересующими нас объектами. Например, графический редактор предоставляет пользователю набор операций, которые можно производить над изображениями. В этом случае программу можно назвать исполнителем, а набор выполняемых исполнителем операций — интерфейсом исполнителя.

Если с точки зрения пользователя интерфейс исполнителя представлен с помощью GUI, то для выполнения каждой операции требуются некоторые ручные манипуляции и автоматизировать повторяющиеся рутинные операции практически невозможно. С другой стороны, программа может предоставлять свой интерфейс таким образом, что к нему можно получить доступ снаружи — из командного интерпретатора системы или непосредственно из скриптового языка. В этом случае автоматизация рутинных операций не является проблемой.

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

Таким образом, под скриптом можно понимать программу, оперирующую объектами с помощью операций, реализация которых предоставляется ей другой программой или набором программ. При этом программа, предоставляющая свои операции скрипту, выступает в роли скрипт-сервера, предоставляющего свой сервис исполняющей системе (интерпретатору) скриптового языка, выступающей в роли клиента.

Взаимодействие между скрипт-сервером и скриптовым языком с технической точки зрения может быть реализовано различными способами. Две наиболее общие стратегии организации такого взаимодействия обычно называют встраиванием (embedding) и расширением (extending). Под встраиванием понимают включение исполняющей системы скриптового языка в состав программы, предоставляющей скрипту свою функциональность. Под расширением понимают включение функциональности программы-сервера в состав исполняющей системы скриптового языка. Скриптовые языки, ориентированные на встраивание, обычно оказываются значительно более «легкими» в смысле размера и сложности их исполняющей системы. Языки, ориентированные на расширение, имеют тенденцию обрастать модулями, реализующими различную общеупотребительную функциональность, а их исполяющая система со временем становится все более сложной и массивной.

Совсем краткий обзор скриптовых языков

Если не рассматривать различные командные интерпретаторы, встроенные в операционные системы, то одним из первых скриптовых языков был язык awk, реализованный в одноименной утилите. Очень часто популярности скриптового языка способствует наличие функциональности, изначально встроенной (расширение) в его исполняющую систему. В случае awk такой встроенной функциональностью стали операции с текстовыми табличными данными. Задачи обработки текстовой информации, представленной набором строк (записи), разделенных на поля, широко распространены и awk стал одним из самых удобных инструментов для обработки текстов.  Поскольку awk содержит средства для взаимодействия с операционной системой, его можно считать скриптовым языком общего назначения, но рудиментарность этих средств делает его использование неудобным уже в случае задач средней сложности. Сам язык awk также обладает ограниченными выразительными возможностями, что делает его непригодным для решения относительно больших задач. Понимание ограниченности языка awk привело к разработке одного из первых скриптовых языков общего назначения Perl, в котором были развиты идеи, заложенные в awk.

Сейчас доступно несколько десятков скриптовых языков, среди котоорых наибольшей популярностью пользуются такие языки как Perl, Lua, Ruby и Python. Выбор скриптового языка в основном определяется решаемыми задачами.

Мне кажется, что для скриптового языка важнейшим требованием является простота самого языка и его исполняющей системы. Если язык будет сложным то на его изучение потребуется много времени, а при практическом использовании синтаксис будет постоянно забываться и снова придется тратить время, каждый раз обращаясь к руководству. Другим требованием является наличие удобного доступа к основным ресурсам окружения — файлам (ввод/вывод) и процессам (запуск программ и получение данных через конвейеры) и предоставлять удобные средства для работы с текстом (разбиение строки на поля, регулярные выражения).

От использования языка Perl я отказался из-за его сложности и эклектичности, а от Ruby — из-за сложности и «изощренности». Python оказался ближе всего к оптимальному решению, но и он показался мне слишком тяжеловесным и не без синтаксических странностей. В результате я остановился на языке Lua, который изначально ориентирован на встраивание в приложения. Мне кажется, что именно этот язык реализует разумный компромисс между простотой языка и полнотой его библиотеки (или все же с некоторым уклоном в простоту).

Первый скрипт на Python

Желание изучить питон было давно. Я много где слышал что он хорошо подходит для прототипов, скриптов и небольших приложений. Он отличается высокой скоростью разработки и низким порогом вхождения. Динамичность — непривычно, но решаемо.

И вот, написал первый скрипт. Он оптимизирует перемещение на «сегодня» просроченных задач в тудуисте. Перенос в приложении выполняется в 3 действия: выделить задачи с зажатым шифтом, пройти через пункты меню и нажать заветную кнопку: «перенести на сегодня». Это не всегда получается с одной попытки. Время для автоматизации!

Установка Python 3

Не нашел причин, чтобы начать знакомство не с 3 версией питона. И, так как в Mac OS X El Capitan, установлена версия 2.7, то рассмотрим простой способ установки Python 3.

Понадобится менеджер пакетов Homebrew. У кого нет — советую. Для его установки введем в терминале:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Теперь установим третий питон:

Проверить работоспособность можно набрав в консоли python3.

Получение пакета для работы с тудуистом

Следующий этап — установка библиотеки для работы с АПИ тудуиста. Воспользуемся менеджером пакетов pip3, который поставляется вместе с Python 3:

pip3 install todoist-python

Напоминаю о командной оболочке Zsh, о которой я писал ранее. Подключив плагины brew и pip можно добавить автодополнение для команд и пакетов.

Среда разработки

Автодополнение, рефакторинг, отладка — все это помогает на любых стадиях изучения языка. Поэтому я воспользовался IDE от JetBrains — PyCharm CE. Это бесплатная версия, в которой есть все необходимое.

Стиль кода и именования

Планирутся отдельная статья. А пока — о стиле именования.

Имена функций, методов и переменных экземпляров классов должны состоять из маленьких букв, а слова разделяться символами подчеркивания:

Стиль mixedCase допускается в тех местах, где уже преобладает такой стиль, для сохранения обратной совместимости:

Для атрибутов и непубличных методов используется один символ подчёркивания перед именем:

Итерация и получение значений из коллекций

Библиотека todoist возвращает на запрос о просроченных задачах словарь или список. Возник вопрос: как работать с коллекциями?

Итерация оказалась похожа на foreach из C#:

for overdue_item in overdue_items:
    item = api.items.get_by_id(overdue_item['id'])
    print item

Для получения значения словаря есть 2 способа . Первый — обращение по ключу:

Но, если значения нет, возникнет ошибка — KeyError: 'id'. Поэтому при неуверенности, используйте get:

id = overdue_item.get('id')

Если значение отсутствует, метод вернет значение по умолчанию — None.

Преобразование и работа с датой

Рассмотрим как парсить дату, находить дельту, добавлять значения и приводить к определенному строковому формату.

Разберем построчно код из моего скрипта:

item_due_date = datetime.strptime(item['due_date_utc'], '%a %d %b %Y %H:%M:%S %z')
delta = datetime.now(timezone.utc).date() - item_due_date. date()
item_today_date = item_due_date + timedelta(days=delta.days)
item.update(due_date_utc=item_today_date.strftime('%Y-%m-%dT%H:%M:%S'))
  1. По ключу due_date_utc получаем дату в формате "Fri 26 Sep 2014 08:25:05 +0000". Выражением %a %d %b %Y %H:%M:%S %z переводим в понятный питону формат. Документация по значениям переменных из выражения.
  2. Находим разницу между текущей датой и датой полученного объекта.
  3. Актуализируем дату объекта, добавляя к нему полученную разницу дней.
  4. Переведем дату в строку используя %Y-%m-%dT%H:%M:%S и отправим изменения в тудуист.

Типы выполнения модуля с кодом

Часто, читая код на гитхабе, встречал конструкцию:

if __name__ == "__main__":
    ...

Выясним ее предназначение.

Когда исполняется файл с кодом, выполняются все команды на нулевом уровне: задаются специальные переменные, импортируются модули, определяются функции и классы. Одна из специальных переменных — __name__. Она хранит имя модуля, который вызвал скрипт.

Например, модуль вызвали из файла foo.py:

Переменная __name__ примет значение foo. Если вызвать скрипт напрямую из терминала:

__name__ инициализируется значением __main__. И тогда выполнится весть код из условия if __name__ == "__main__":. Получается, модуль может работать и библиотекой и независимым приложением.

Добавление атрибутов командной строки

Мой скрипт может принимать значение токена АПИ тудуиста. Для этого скрипт вызывается с параметром -t:

python TodoistOverdue.py -t 0123456789abcdef0123456789abcdef01234567

Рассмотрим построчно, как задавать описание скрипта и определять аргументы:

parser = argparse.ArgumentParser(description="Moving overdue tasks for today in todoist")
parser. add_argument("-t", "--token", help="Todoist API token")
args = parser.parse_args()
  1. Инициализируем класс ArgumentParser, помогающий работать с командной строкой, и зададим описание скрипта.
  2. Добавим аргумент, задаваемый ключом ’-t’ или ’--token’. В параметре help указываем описание, показываемое при вызове скрипта с ключом -h.
  3. Переводим строки аргументов в объекты и присваиваем их как атрибуты к переменной.

Теперь, при запуске скрипта с ключом -t, в переменной args.token будет храниться значение введенного токена. Про остальные параметры и методы можно узнать в документации python.

Чтение и запись в файл конфигурации

Полученный токен хранится в конфигурационном файле. Рассмотрим код для доступа, чтения и записи значения:

Чтение и запись в файл конфигурации

Полученный токен хранится в конфигурационном файле. Рассмотрим код для доступа, чтения и записи значения:

config = configparser. ConfigParser()
config.read(expanduser('~') + "/.todoist")
token = args.token
if token is None:
    token = config['Global']['TokenAPI']
else:
    config['Global'] = {'TokenAPI': token}
    with open(expanduser('~') + "/.todoist", 'w') as configfile:
        config.write(configfile)
  1. Инициализируем ConfigParser и читаем файл из домашней директории пользователя. expanduser('~') позволяет получить путь к домашней директории в любой операционной системе.
  2. Читаем конфиг как словарь: config['Global']['TokenAPI']. Сначала обращаемся к секции со значением, следом — к ключу.
  3. В блоке else записываем значение токена, если оно было указано при запуске. После конфигурационный файл записывается на диск.

Мне понравилось, как просто записать изменения в файл. В C# для этого надо открывать потоки, указывать дополнительную информацию, здесь это просто 2 строчки. Возьми это и запиши сюда, все.

Документация для ConfigParser. Информацию о вводе и выводе в Python 3.

Заключение

Знакомство с языком Python оставило приятное впечатление. Как минимум его стоит изучить на базовом уровне, чтобы автоматизировать происходящие вокруг вас процессы. Он также хорош для быстрого написания прототипа идеи, засевшей у вас в голове.

Полный скрипт TodoistOverdue.py из статьи лежит в gist.

Полезные ссылки

— Как запускать скрипты в Mac Os X без указания полного пути. Stackoverflow. — Изучить питон за несколько минут (learnxinyminutes.com). Русская и английская версия. — Документация для Python 3.5.х.

Google Docs создание скриптов в электронных таблицах

Сравнивать VBA, скрипты LO и Google Apps Script не верно. Говорить о «google docs» — все равно, что говорить ни о чем. Писать «скрипт в Google Spreadsheet» — это просто написать, что одно приложение сервиса связано с другим.

Не мне, правда, учить, что к чему, но некоторые вещи очевидны. Некоторые из них, хоть и косвенно относятся к вопросу и отображены здесь НАИМЕНОВАНИЕ ПРИЛОЖЕНИЙ СЕРВИСА «ДИСК GOOGLE»

Далее предлагаю рассмотреть занимательный файл 1. Google Apps Script. Начало. Нужны они вам или нет?

Официальные. Английский язык

Документация

Вся основная документация, разжеванная до состояния готового к употреблению пюре, находится на официальном ресурсе Google Apps Script

Блог разработчика

Google Apps Developer Blog по моему скромному мнению является достойнейшим ресурсом.

Сообщества

Три лидирующих сообщества по скриптам, конечно же на G+

  • Google Apps Script уже упоминалось выше, является ключевым, читают сами разработчики скриптов.
  • Developing add-ons for Google Docs/Sheets/Forms полуофициальное сообщество поддержки разработчиков аддонов.
  • Google Docs and Drive полуофициальное сообщество по Диску, где вас непременно направят куда надо.

Форумы

Давным-давно была группа по скриптам, но ее закрыли в пользу stackoverflow, по тэгу [google-apps-script]

Неофициальные. Английский язык

Почтенные и достойные мужи управляют этими ресурсами.

Неофициальные. Русский язык

Сообщества

Чаты

Есть дружелюбный хэнгаут по Google Apps на русском языке. Обращайтесь в личку.

Литература по Google Apps Script устаревает очень быстро. Необходимо знать JavaScript, поэтому и литературу лучше подбирать соответствующую.

Если вам необходимо написать скрипт именно для Таблицы, то он ничем не будет отличаться от скрипта для Документа или Формы. Поэтому вернее задавать вопрос напрямик: «Я делаю так-то так-то, хочу то-то то-то, как сделать?».

CGI: пишем простой сайт на Python. Часть 1: Hello world

Проще всего создать динамические страницы на Python при помощи CGI-скриптов. CGI-скрипты — это исполняемые файлы, которые выполняются веб-сервером, когда в URL запрашивается соответствующий скрипт.

Сегодня я расскажу про то, как написать Hello world, как CGI-скрипт.

Настройка локального сервера

В Python уже есть встроенный CGI сервер, поэтому его настройка элементарна.

Для запуска из консоли (для любителей linux-систем). Запускать нужно из той папки, где мы хотим работать:

python3 -m http.server --cgi

Для сидящих на Windows чуть проще будет запуск Python файла (заметьте, что он должен находиться в той же папке, в которой мы планируем работать!):

from http.server import HTTPServer, CGIHTTPRequestHandler
server_address = ("", 8000)
httpd = HTTPServer(server_address, CGIHTTPRequestHandler)
httpd.serve_forever()

Теперь откройте браузер и в адресной строке наберите localhost:8000

Если у вас примерно такая же картина, значит, у вас все заработало!

Hello world

Теперь в той папке, где мы запустили сервер, создаём папку cgi-bin (у меня она уже создана).

В этой папке создаём скрипт hello.py со следующим содержимым:

#!/usr/bin/env python3

print("Content-type: text/html")
print()
print("<h2>Hello world!</h2>")

Первая строка говорит о том, что это Python скрипт (CGI-скрипты можно не только на Python писать).

Вторая строка печатает заголовок. Он обозначает, что это будет html файл (бывает ещё css, javascript, pdf и куча других, и браузер различает их по заголовкам).

Третья строка (просто символ новой строки) отделяет заголовки от тела ответа.

Четвёртая печатает Hello world.

Теперь переходим на localhost:8000/cgi-bin/hello.py

И радуемся!

Если у вас не работает, проверьте, установлены ли права на выполнение.

Также в консоли запущенного сервера появляются сообщения об ошибках. Например, убрал скобочку и обновил страницу:

В следующей части мы рассмотрим обработку данных форм и cookies.

Как создать собственный script (скрипт-сценарий) в Linux

Прежде всего давайте разберём, что такое script и для чего он нужен.

Script в переводе с английского — сценарий. Все мы смотрим фильмы, многие из нас — спектакли. Чтобы создать фильм/спектакль, сценаристы пишут к ним сценарии, на основании которых артисты, сценка за сценкой исполняют на сцене свои роли, из чего и складывается фильм/спектакль. Работа по созданию сценария довольно кропотливая, где нужно учесть всё до мелочей, чтобы в конечном итоге артисты могли выполнить задуманное сценаристом, а зритель увидел целостное произведение.

Подобным же образом пишутся скрипты для выполнения списка задач, которые пользователь составляет вместе (код), чтобы сделать их выполнение проще и быстрее в операционной системе. Для написания простых скриптов совсем не обязательно иметь образование программиста.

Для начала давайте создадим самый, что ни на есть, простейший скрипт-Shell для обновления системы.

Все действия я буду проводить с системе Ubuntu, но они применимы и к другим системам Linux, производных от Ubuntu. Для этого нам понадобятся: Текстовый редактор, чтобы наполнить его нужными задачами для создания скрипта (кода) и Терминал — для выполнения созданного скрипта. Эти инструменты установлены в любом дистрибутие Linux по умолчанию.

Итак, открываем текстовый редактор Gedit и вводим в него первые обязательные символы под названием shebang.
shebang в программировании, это последовательность из двух символов: решётки и восклицательного знака (#!) в начале файла скрипта. И добавляем к данным символам без пробелов /bin/sh — интерпретатор, где будет выполняться скрипт. /bin/sh — это обычно Bourne shell или совместимый интерпретатор командной строки, который передаёт «path/to/script» как первый параметр.
Первая обязательная строка скрипта будет выглядеть следующим образом:

#!/bin/sh

Далее, следующей строкой следует описание того, что должен выполнить наш первый скрипт/сценарий:

# Мой первый Script обновления Ubuntu

Знак решётки (#) в самом начале строки даёт понять интерпретатору/терминалу, что эту строку читать и выполнять не нужно. Строка нужна в коде данного скрипта для того чтобы сам создатель скрипта знал, что он собирается выполнить на данном отрезке/сценке в коде, чтобы не запутаться в дальнейшем, когда таких строк будет много. Такие строки с знаком решётки называются — закомментированные.

Далее в скрипте следуют выполняемые строки с командами, в данном случае для обновления системы Ubuntu:

sudo apt update
sudo apt upgrade -y

-y в конце второй команды даёт понять интерпретатору/терминалу, что это действие/команду нужно выполнить автоматически, без дополнительного подтверждения пользователем, нажатия  клавиши Ввод. y — сокращённо от английского yes, т.е. да.

Вот и всё. Ваш первый скрипт создан. У вас должно получиться как на снимке:


Остаётся сохранить созданный файл/скрипт и дать ему Имя с обязательным расширением в конце — .sh. Расширение .sh присваивается исполняемому файлу.
Я дал ему Имяобновление.sh, сохранив в Домашней папке пользователя:
Для того чтобы созданный файл/скрипт был исполняемый, ему нужно дать на это разрешение. Сделать это можно двумя способами.

1. Выполнить следующую команду в терминале:

sudo chmod +x обновление.sh

2. Либо открыть  файловый менеджер в Домашней папке (где вы сохранили созданный скрипт), правый клик на файле, в контекстном меню — Свойства — Права и активировать пункт — Выполнение: Разрешить выполнение файла как программы:


Чтобы выполнить созданный скрипт, нужно открыть терминал ( о чём я писал в самом начале статьи, что терминал — необходимый атрибут/инструмент для выполнения скрипта), ввести sh, через пробел название скрипта — обновление.sh и нажать клавишу Ввод:
Либо в терминале вводим sh и перетаскиваем из файлового менеджера созданный файл с скриптом (также через пробел):
После того как путь к файлу отобразится после команды sh и пробела, достаточно нажать клавишу Enter (Ввод), чтобы выполнить обновление системы:
Теперь в любой момент вы можете сделать обновление системы созданным собственным скриптом.

Да, кто-то может возразить, что обновление системы не сложно сделать выполнением этих двух команд в терминале, зачем пыжиться и создавать какие-то скрипты? Всё верно. Но это пример создания простейшего скрипта, чтобы показать, что «не боги горшки обжигают» 😃.

Научившись писать и использовать простейшие скрипты, можно создать скрипт по настройке системы, с тем чтобы в случае переустановки системы могли воспользоваться созданным сценарием без необходимости искать каждый раз в сети сайты с подобными настройками.

Многие из вас, скорее всего, пользуются сайтами по настройке системы, типа тех что я публикую после выхода очередного релиза UbuntuUbuntu после установки или подобными сайтами. Откройте один из таких сайтов: http://compizomania.blogspot.com/2016/04/ubuntu-1604.html, затем текстовый редактор для создания скрипта.
Для примера я сделал следующую заготовку.

В текстовом редакторе вводим первую обязательную строку:

#!/bin/bash

Далее закомментированные строки с описанием:

# Настройка Ubuntu после уставновки
# Обновление системы

Ниже следуют команды обновления системы:

sudo apt update
sudo apt upgrade -y

Строка описания: Добавление репозиториев:

# Добавление репозиториев

И добавляете необходимые репозитории для дальнейшей установки программного обеспечения:

sudo add-apt-repository «deb http://archive.canonical.com/ $(lsb_release -sc) partner» -y
sudo add-apt-repository ppa:atareao/telegram -y
sudo add-apt-repository ppa:atareao/atareao -y

sudo add-apt-repository ppa:nemh/systemback -y
sudo add-apt-repository ppa:gerardpuig/ppa -y
sudo add-apt-repository ppa:haecker-felix/gradio-daily -y

После того как необходимые репозитории добавлены (повторюсь, у вас могут быть свои репозитории, у меня пример), необходимо обновить систему:

Строка с описанием:

# Обновление системы после подключения репозиториев

И команда на выполнение:

sudo apt update

Теперь, когда репозитории добавлены и система обновлена, наступила очередь в установке программ:

# Установка программ

Для установки программ достаточно один раз ввести команду sudo apt install, а затем через пробел в данную строку добавлять сколько угодно программ, главное чтобы они были правильно составлены. Если какая-то программа состоит из нескольких слов, её команда должна быть монолитной, т.е. все слова в ней должны вводится через чёрточку, например: unity-tweak-tool:

sudo apt install my-weather-indicator telegram skype lm-sensors hddtemp psensor gdebi systemback unity-tweak-tool ubuntu-cleaner gradio -y

Установка дополнительных кодеков

# Мультимедиа и кодеки

sudo apt install ubuntu-restricted-extras -y

Отключение о сбоях в системе

# Отключить отчёты о сбоях в системе

sudo sed -i «s/enabled=1/enabled=0/g» ‘/etc/default/apport’

Ну вот, пожалуй, и всё. Данный созданный файл сценария должен выглядеть следующим образом:


Необходимо сохранить его (нажать кнопку Сохранить) и дать Имя с расширением .sh. Я назвал его Настройка\ Ubuntu.sh (вы можете назвать по-другому, но обязвтельно с расширением .sh):
Делаем созданный скрипт исполняемым:

sudo chmod +x Настройка\ Ubuntu.sh

Для выполнения созданного скрипта введите в терминале sh и название созданного скрипта через пробел, либо sh, пробел и перетащить в терминал созданный файл, как объяснялось ранее в простейшем скрипте и нажмите клавишу Ввод, для его выполнения.

Примечание. Обратный слэш в команде Настройка\ Ubuntu.sh экранирует пробел в названии файла для терминала между двумя отдельными словами.

После того как скрипт будет выполнен, хранить его на будущее, для возможной переустановки системы и повторной настройки, лучше всего на отдельном разделе ж/диска в папке /home. Если таковой нет, то в облачном сервисе (Облачное хранилище данных) типа:  DropBox, Облако Mail.Ru, Mega.co и т.п., чтобы в любой момент воспользоваться скриптом самому, либо помочь знакомым или родственникам в настройке системы.

Удачи.

Изучение основ сценария

1. Как начать сценарий

Первые несколько страниц вашего сценария имеют решающее значение. Большинство руководителей или читателей (людей, которые хотят стать руководителями) дадут вам не более 10 страниц, чтобы заинтересовать их. Вот почему у вашего сценария должно быть хорошее начало.

Вот некоторые из лучших, проверенных временем приемов написания сценария, с которых можно начать свой рассказ.

ДЕЙСТВИЕ, ДЕЙСТВИЕ, ДЕЙСТВИЕ — Все фильмы о Джеймсе Бонде начинаются с действия, которое может быть связано или не иметь отношения к основному сюжету.

Детектив полиции пытается арестовать пару наркоторговцев. Начинается перестрелка. Один торговец наркотиками убит, другой уезжает. Детектив преследует его на собственной машине, быстро двигается, уворачиваясь от препятствий и стреляя из пистолета. Вы уловили картину.

НАСТОЯЩЕЕ НАЧАЛО

Герой или героиня прибывает в аэропорт или на вокзал нового города. Они начинают свой первый день работы в новой компании. В соседнюю дверь входит жуткий человек. Главный герой встречает кого-то, кто будет иметь большое влияние — любовника, наставника или врага.

ДЕНЬ ИЗ ЖИЗНИ

Покажите нам, как герой или героиня занимается своим обычным делом. Мать-одиночка готовит завтрак перед тем, как отправить детей в школу, а затем пойти на работу.

Адвокат может обсуждать дело перед присяжными.

Врач скорой помощи спасает жизнь пострадавшему в дорожно-транспортном происшествии. Но основной сюжет может быть о прекращении смертельной эпидемии. Затем вы можете начать с того же врача, который лечит человека, страдающего странной, неизвестной болезнью, которая, как выясняется, связана с эпидемией.

Городской учитель помогает ребенку из неблагополучных семей научиться читать. Затем мы обнаруживаем, что она будет бороться с равнодушной бюрократией, которая хочет закрыть молодежный центр, чтобы превратить его в торговый. Или мы можем узнать, что ее брак может распасться из-за того, что она родила ребенка с трудностями в обучении.

Уловка, чтобы сделать этот дебют работающим, не дать ему надоесть. Быстро дайте нам повод болеть за главного героя. Возможно, покажите их как неудачников или внесите в их жизнь конфликт.Это может быть связано с основной историей или нет, но быстро даст читателю повод для беспокойства.

Это несколько приемов написания сценария, которые помогут вашему фильму стать отличным началом. Подумайте об их использовании, когда вы начнете свой следующий сценарий, или, возможно, переписать существующий, чтобы дать ему лучшее начало.

2. Критические элементы первого акта

Великий писатель и режиссер Билли Уайлдер дает такой совет по сценарию и созданию фильмов: «Хватай их за горло и никогда не отпускай.”

Это то, что действительно должно сделать ваше первое действие, ваши первые несколько страниц. Первый акт выполняет несколько функций. Он определяет ваших главных героев, место действия, временной период, тему, настроение и жанр. Именно в этом акте мы встречаемся с главным героем и антагонистом.

В некоторых фильмах мы можем не встретить антагониста напрямую, но, по крайней мере, познакомимся с ним с намеками на окончательное откровение, как это часто бывает в мистериях. Хотя мы, возможно, еще не видим их, нам хорошо известно об их присутствии и негативном, иногда разрушительном влиянии, которое они окажут на других персонажей истории.

Первый акт устанавливает предпосылку истории: циничный владелец салуна потрясен, увидев, что женщина, которую он любит, возвращается в его жизнь во время Второй мировой войны: Casablanca . Огромная акула угрожает пляжному сообществу в начале летнего туристического сезона: Jaws . Молодой пилот-истребитель должен спасти похищенную принцессу и уничтожить империю зла: Star Wars .

Первое действие должно действительно схватить читателя Голливуда за горло в пределах 10 страниц, иначе они перестанут читать и перейдут к следующему сценарию в своей стопке.

Первый акт сценария обычно длиннее 10 страниц, но это все время и пространство, которое вам нужно, чтобы убедить кого-то продолжить чтение.

Большинство учителей сценария считают, что первый акт должен составлять около четверти сценария. Но многие первые действия намного короче. Все первые действия заканчиваются провоцирующим инцидентом, то есть событием, которое либо побуждает, либо заставляет главного героя идти своим путем в новом направлении.

Первый акт, в сочетании с подстрекательским инцидентом, устанавливает центральный вопрос истории: что ваш главный герой хочет делать, быть или иметь и что или кто стоит на его пути?

3.Используйте архетипы для увлекательных историй

При написании сценария обязательно используйте Archetypes . Их не следует путать со стереотипами , которые представляют собой одномерные персонажи, которых мы видели в слишком многих фильмах.

Архетипы представляют элементы нашей личности на глубоком уровне — мать, отец, художник, учитель, король и т. Д. Они появлялись в бесчисленных историях на протяжении тысяч лет. Они достигают нас на подсознательном уровне, возможно, поэтому они выстояли и до сих пор имеют силу затронуть наши эмоции.

Архетипом может быть скелет, на котором вы строите полноценного трехмерного персонажа. Некоторые из общих архетипов в фильмах и литературе: наставник, злодей, меняющий облик, дурак, мудрый старик или женщина и герой, и это лишь некоторые из них.

Избегайте соблазна превратить архетип в стереотип, дав ему только одну, очень очевидную характеристику. Например, наставник часто изображается как более мудрый и пожилой человек, такой как Гандольф, в трилогии , Властелин колец .

Но архетип наставника также может быть старшим братом или сестрой, который учит брата или сестру, как завязывать обувь, начальником на работе, старшим офицером в полицейском управлении или вооруженными силами, мальчиком на тропическом острове, который учит новичка. где найти лучшие фруктовые деревья в джунглях или обычаи своего народа и тд.

Вы можете сделать своего архетипического персонажа богаче, смешав черты характера, которые могут показаться противоречащими их главной роли в вашей истории или обществу, в котором они живут.Шекспир часто использовал персонажа Дурак для социальных или исторических комментариев, делая их на этом уровне мудрее, чем персонажи, считающие себя умнее Дурака.

Архетип Мудрого Старика или Женщины мог обладать прекрасным чувством юмора и рассказывать непристойные анекдоты. Возможно, он или она могли бы быть шутником, раздавая мудрые советы взрывающимся сигарам.

Для большей глубины и расширенных возможностей рассказа истории вы можете смешивать и сочетать архетипы.Одним из архетипов, описанных Джозефом Кэмпбеллом в его книге « Герой с тысячью лиц» , является «Вестник », который приносит новости или информацию, в которой нуждается Герой.

Вестник может также предложить знамения грядущих событий. Что, если вы перепутаете Вестника с шуткой, рассказывающей Дурака? Как это может повлиять на вашу историю? Будет ли это заставит Героя сбрасывать со счетов информацию? Или по-прежнему действовать, но с осторожностью?

Выбор за вами. Используйте архетипы с умом, и они обогатят ваш сценарий.

4. Избегайте этих ошибок новичков

Написание сценария сильно отличается от написания романа или реальной книги. Это другая среда, и к ней нужно относиться как к таковой. Это сложная форма, с которой способны справиться даже немногие авторы.

Имея это в виду, вот несколько типичных ошибок начинающих сценаристов:

НАЧАТЬ СЛИШКОМ ПОЗДНО

Романы могут и часто начинаются в неторопливом темпе, с описаний сцен, фонов персонажей и т. Д., Но поскольку сценарии обычно занимают максимум 120 страниц, большая часть которых состоит из белого пространства, сценарий должен начинаться раньше.

НЕОБХОДИМОЕ ОПИСАНИЕ

Описание сценария минималистичное, достаточно, чтобы сообщить читателю, где мы находимся, и общий тон места. Остальное оставьте на усмотрение директора и / или арт-директора.

ОЧЕВИДНО

Одна из тенденций начинающих сценаристов — заставлять персонажей рассказывать нам то, что мы только что наблюдали на экране. Например, если мы наблюдаем за встречей на треке, и Джон первым пересекает финишную черту, нет необходимости и утомительно, когда персонаж говорит: «Джон выиграл гонку».«

ФОРМАТ

Сценарии выдержаны в строгом формате. Первое, что делает продюсер или голливудский читатель (чья работа — читать сценарии для своих боссов), — это проверять формат. Если что-то не так, пусть даже немного, сценарий выбрасывают без дальнейшего внимания.

ДЛИНА

Сценарий художественного фильма обычно составляет 90–120 страниц, хотя обычно предпочтительно около 100 страниц. Причина в том, что одна страница сценария считается одной минутой экранного времени.Руководители отрасли обычно не читают сценарий неподходящей длины.

СЛИШКОМ МНОГО ДИАЛОГА

Одна большая ошибка новичков — писать диалог за страницей. Фильмы — это прежде всего визуальная среда. Должен быть хороший баланс диалога и физических действий, благоприятный для действий. Действие не обязательно означает перестрелки и автомобильные погони. Значит, персонажи что-то делают.

О Данеке С. Каусе

Данек С. Каус — автор отмеченного наградами художественного произведения.У него два фильма в разработке, и еще три его сценария были выбраны. Недавно его наняли авторы, чтобы он адаптировал свои книги для большого экрана. Он также является национальным экспертом по сценариям для Examiner.com. Посетите его веб-сайт для получения дополнительной информации или напишите ему по адресу [адрес электронной почты защищен].

Как написать сценарий

Подпишитесь на нашу рассылку Script и получайте последние новости о сценариях, а также копию
Рабочая тетрадь «Как написать сценарий» — подарок в подарок.

Я писал сценарии с помощью Final Draft 9 в течение многих лет и недавно обновился до Final Draft 10. Он богат множеством новых функций, которые вы не найдете в другом программном обеспечении для написания сценариев для настольных компьютеров или онлайн. Я даже попросил сокурсников на курсах сценаристов, которые я прошел в Университете сценаристов, и все, кроме одного, использовали Final Draft. Если вам нужна копия Final Draft, вы можете сэкономить 20 долларов, используя этот код, который был отправлен мне по электронной почте.Это FDWS920, и он работает в Writers Store, но отправьте мне по электронной почте любые другие коды, которые вы можете найти.

Я только что получил репортаж о моем последнем сценарии, и я готовлюсь к новой редакции. Я упоминаю об этом, потому что это огромная помощь в выявлении областей в моем сценарии, которые нужно было переписать. Напишите мне по электронной почте, если вы думаете о том, чтобы получить освещение сценария или заметки о разработке, и у вас есть какие-либо вопросы.

Введение

Если вы новичок в написании сценария, планируете написать сценарий или сценарий в любом виде, хорошая новость в том, что писать в формате сценария проще и даже больше интуитивно понятный сегодня, чем когда-либо со времен первого текстового процессора Lanier.Достижения в области программного обеспечения для написания сценариев теперь экономят время, которое у вас было раньше. потратил на то, чтобы научиться писать сценарий в профессиональном голливудском формате. теперь займитесь полировкой сюжета, оттачиванием диалога или обучением структура сценария. Некоторые думают, что написание сценария затмевает стремление к Великий американский роман, но это, конечно, не легче. Во всяком случае создание фильмов — это совместный процесс, требующий, чтобы создание сценария для создания документа определенного формата, обозначений и длины называется «сценарий».’

Этот обзор познакомит вас с форматом написания сценария. правила и этикет сценария, о которых вам нужно знать, и при просмотре в следующем материале вы можете заметить слова «не надо», «избегать» и «…» если только вы не снимаете фильм ». Примите этот совет близко к сердцу. Как вы станете познакомившись с миром сценария, вы поймете, почему, но пока объем этого документа запрещает более глубокое объяснение.

Обучение написанию сценария включает в себя множество аспектов, но я надеюсь, что это базовое информация даст вам фору в ваших начинаниях, включая практические информация, которая поможет вам прочитать ваши сценарии.И, надеюсь, превратился в фильмы.

Как написать сценарий для чайников

Разные дома и ребята по ним знаешь. Уважайте, что вы когда-либо писали сценарий. Владение сценарием также может сэкономить вам много времени на изучение форматирования. Для этого вы вкладываете все самое лучшее, а затем вам нужно снова добавлять своего персонажа.

Есть ли трудность, что вам придется ответить на ваш сценарий в проекте контраргументации, если фильм задумается.Даже если нашему эссе посчастливится получить признание, мои шансы на то, что мое имя попадет в список, как первый писатель и отраслевой взнос, все еще меньше.

Написание сцены усиливает Шаг 5: Вот некоторые писатели: Упрямый сирота и его заклятый враг-неудачник должны спасти Предисловие и себя от стремящегося к стратегии ромуланца из будущего.

Не путешествуйте, чтобы включать важные детали, такие как день, ум и действия персонажей в владельце. В конце первого акта раскрывается первая сюжетная точка.

Добро пожаловать, это лучшее из возможных для начала. Размышляя об искусственном форматировании, я понял, как сложно улучшить уникальные истории в такой боевой форме. Они почти так же способны, как и диалог. Логлайны обычно содержат три элемента: это кульминация истории, событие, когда конфликт истории достигает значения.

Каждая сцена должна сказать, кто находится на автобане, где он, когда и к чему стремится. Изучение того, как писать сценарий, задает множество аспектов, но я надеюсь, что эта неизменная информация поможет вам в ваших начинаниях, включая практическую полезность, чтобы помочь вам прочитать ваших партнеров.

Выровненный по левому краю означает, что факты начинаются слева от лучшего, как и в этом тезисе. Обладая интернациональностью, настойчивостью и немного мужественности, начинающие сценаристы, которые ищут свою большую проблему, могут однажды ее найти.

Голос за кадром — Вряд ли вы захотите, чтобы ваш персонаж мыслил ограниченно, чем когда-либо диалоги. И тема будет закончена почти так же мощно, как и началась. Вы можете назвать кульминационный момент как отставное сражение, которое определяет, чем закончится глагол.

Вы можете продемонстрировать его в Twitter joebunting. Щелкните здесь, чтобы продолжить работу о том, как найти пьесу. Если вы пытаетесь писать пьесы, то не потому, что хотите, чтобы к ним подходили. Как пойти на спектакль — Итак, вы чувствуете, что пишете пьесы.

DarkKnigt Я создаю отличный, и очень, очень сознательный, здесь забыли: сначала я сбился с пути. Это достигается «за кадром» и обозначается сокращенно «O.

».

Вы, как читатель, можете иметь представление о том, как что-то должно быть способно или какое-то действие, которое тоже должно происходить в том же смысле.

Лучшие инструменты, которые вы можете использовать для изучения и написания отличных телевизионных сценариев: Программное обеспечение для написания сценариев — будь то WriterDuet или один из других эквивалентов, программное обеспечение сделает большую часть работы за вас с точки зрения форматирования.

Как написать базовый сценарий фильма для чайников начали онлайн-курс и почувствовали вдохновение, чтобы написать сценарий. С тех пор действует наш курс «Сценарии для начинающих». Скрипт состоит из трех частей: заголовка, повествования и диалога.

Каждому из них следует запомнить три момента. Сценарий — это не просто страницы красивых людей, стоящих вокруг и говорящих разные вещи. Чтобы написать успешный сценарий, есть несколько компонентов, о которых должны знать все начинающие сценаристы.

Как набросать рассказ — для начинающих Чтобы отпраздновать Национальный день рассказа в Великобритании, мы решили опубликовать этот инструмент для начинающих писателей. Этот день выбран потому, что 21 декабря — самый короткий день в Северном полушарии.Структура сценария — Советы по написанию сценария 2 Здесь вы найдете руководство по структуре сценария, включая советы о том, как написать сценарий с правильным количеством страниц, действий, сцен и так далее.

Это вторая часть серии телеканалов CWN о том, как писать сценарий фильма. Получите это из библиотеки! Сценарий для чайников. [Лаура Шеллхардт] — Напишите отличный сценарий и передайте его в руки голливудских игроков!

Так ты хочешь быть сценаристом? Если вы хотите написать художественный фильм, сценарий для телесериала или адаптировать свою любимую книгу, это.

Как написать сценарий для чайников

Оценка 4/5 На основе 71 отзыва

6 советов о том, как продать свой сценарий

Вы пожертвовали бесчисленными часами социальной жизни и психической стабильностью, пролили свою кровь и пот на страницы и — давайте будем честными — подвергли сомнению свое творчество и, следовательно, ваше жизненный выбор почти каждый день до этого момента.Вы знаете, что сценарию нужно несколько черновиков, чтобы его можно было считать готовым к выходу в свет; ни один успешный человек не отправляет первые наброски своих сценариев на фестивали или конкурсы. В конце концов, один отличный сценарий стоит больше миллиона посредственных сценариев. Итак, вы поработали.

Вы переписывали, исправляли, проверяли, собирали отзывы и исправляли снова и снова. И опять. Но, в конце концов, вы это сделали; ваш сценарий готов. Чувство выполненного долга и гордости сродни любви, которую испытывают родители после того, как они стали свидетелями рождения своего первого ребенка; трудоемкое создание, подобное пресловутому фениксу из пепла.

Но затем возникает непростая задача — донести ваш сценарий до масс.

Ежегодно в систему поступает более ста тысяч сценариев и снимается около 300 фильмов — только около 10 из них поступают от начинающих сценаристов — шансы могут показаться устрашающими. Тем не менее, все дело в цифрах, а это означает, что чем больше вы публикуете свой сценарий, тем выше шансы, что его увидят.

После того, как вы написали несколько черновиков сценария и убедились, что он готов для демонстрации, рассмотрите эти 6 советов о том, как начать продавать сценарий:

Не продавай свой сценарий

Это может звучать совершенно противоречиво, но когда дело доходит до продажи сценария спецификации — работы, которая не заказана или не запрошена — вместо того, чтобы игроки отрасли покупали ее сразу, шансы того, что они сочтут сценарий как резюме для вас, намного выше скорее всего.

Проще говоря, ваш сценарий спецификаций должен использоваться для демонстрации и как сценариста, чтобы построить карьеру в написании других сценариев, которые оплачиваются студиями. Вместо того, чтобы работать над продажей сценария, продавайте себя.

Имейте в виду, что даже если руководителю нравится ваш сценарий, неизбежно возникает вопрос: «Что еще у вас есть?» Вы должны быть в состоянии ответить другим сценарием или, по крайней мере, подробным питчем. Так что никогда не переставай писать.

Сосредоточьтесь на развитии своего ремесла.Продажа сценария — это одна сделка: для построения карьеры может потребоваться целая жизнь. Вы должны продолжать работать, улучшать, пересматривать и адаптироваться, чтобы ориентироваться в отрасли. Писателям необходимо писать постоянно, чтобы со временем становиться лучше, и чем лучше становится ваше письмо, тем больше у вас шансов что-то продать или, что еще более важно, построить прочную и плодотворную карьеру.

Contests также могут быть местом, где вы можете установить связи, ведущие к представлению и возможности, чтобы ваш сценарий презентации был прочитан руководителями.Например, посетите кинофестиваль в Остине, куда были приглашены несколько наших студентов после отправки своих сценариев.

Сделайте сокращение для своего фильма

Итак, собираетесь ли вы использовать свой сценарий в качестве резюме или самостоятельного шедевра, вам все равно придется рекламировать его в наиболее отточенной и совершенной форме, чтобы вас заметили. Создание короткометражного фильма по сценарию становится самой сильной визитной карточкой, которую можно увидеть. Может показаться сложным сжать весь сценарий в короткометражку, но это важный навык, который нужно освоить.Если вы можете сделать короткометражку, вы можете разместить ее на веб-сайте, например scripts.com — именно здесь агенты по продажам ищут действительно отличные короткие фильмы, которые часто создаются по сценариям полнометражных фильмов. YouTube и Vimeo также являются отличными платформами для привлечения внимания.

Конкурсы

Хорошее завершение соревнования сразу увеличивает шансы на то, что ваша работа будет прочитана. Это не только повысит ваш авторитет как сценариста и повысит вашу репутацию, но и в большинстве конкурсов также предлагаются денежные призы — так почему бы не принять участие в как можно большем количестве конкурсов? Ежегодно проводится множество конкурсов, от крупных игроков, таких как PAGE International Screenwriting Awards, до менее известных, но не менее важных, таких как Final Draft Big Break Contest.Так что уходи!

Письмо-запрос или электронное письмо

Это настолько просто и критично, насколько это возможно. В письме-запросе / электронном письме указывается, кто вы и о чем ваш сценарий, и оно отправляется студиям, агентам и менеджерам. Это может показаться простым, но хорошее письмо-запрос и план электронной почты требуют большого терпения и настойчивости, поскольку установленные отраслевые контакты оставляют мало места, чтобы услышать от неизвестных писателей (хотя менеджеры немного более открыты для взращивания новых талантов). Тем не менее, исчерпание всех ваших возможностей в установлении связей с привратниками увеличит ваши шансы быть представленными и сделает ваш сценарий более заметным.Здесь также очень поможет ваш короткометражный фильм. У занятых и важных людей редко есть время, чтобы сесть и прочитать весь сценарий неизвестного, поэтому помимо краткого описания сюжета в запросе очень полезно добавить ссылку на готовый короткометражный фильм.

Питчфесты

Как это ни звучит, «презентация» — это своего рода конференция, на которой инсайдеры отрасли собираются, чтобы поделиться своими знаниями и найти новые таланты. Ключ для начинающих сценаристов — это посещение этих мероприятий, нацеленных не только на единственную цель — продать сценарий, но и на создание сети контактов и получение ценных отзывов.Pitchfests также предлагает вам идеальную платформу для оттачивания ваших навыков подачи, поскольку это то, что вам нужно, чтобы преуспеть в отрасли. Расскажите о своей идеальной презентации, всегда спрашивайте отзывы и не забывайте после рабочего дня сказать «спасибо»!

Листинговые услуги

Существует значительное количество веб-сайтов, предлагающих каталог для специалистов отрасли, ищущих сценарии. Такие сайты, как The Black List, Spec Scout и The Tracking Board (среди многих других), предоставляют вам платную платформу для рекламы вашей работы напрямую отраслевым покупателям, а также возможность получить отзывы о вашей работе.

Каким бы устрашающим это ни казалось для начинающего сценариста, продающего сценарий, не забывайте, что новаторские фильмы, такие как «Криминальное чтиво» и «Назад в будущее», были среди многих гениальных сценариев, которые с самого начала неоднократно отвергались. Общим знаменателем во всех этих случаях была непоколебимая страсть сценаристов к своей работе и настойчивость в том, чтобы их работа была замечена. Так что никогда не сдавайтесь!

7 советов по созданию отличных сценариев видео

7 советов по созданию отличных сценариев видео

Написание сценария — одна из моих любимых форм письма.Видеосценарии, как правило, представляют собой короткие мощные истории, и интересно наблюдать, как они оживают под чьим-то творческим руководством.

Тем не менее, есть несколько уловок для создания успешного сценария.

1. Расскажите историю. Даже если это рассказ, он должен провести зрителей через путешествие. Расскажите историю о человеке, который сталкивается с проблемой, которую может решить ваш продукт или услуга. И используйте эти ключевые компоненты для хорошего написания историй.

2. Придумайте визуальную тему. Некоторые люди могут представить себе, как будет выглядеть видео, а затем написать соответствующий сценарий. Поскольку я умею говорить, я начинаю со сценария, а затем пытаюсь придумать визуальные эффекты, которые помогут проиллюстрировать мою историю. В любом случае попробуйте придумать связную тему, которая связывает все визуальные компоненты вместе.

3. Время решает все. Это самая сложная часть написания сценария. Если вы пишете сценарий для одноминутного объясняющего видео, у вас будет всего 135-175 слов для игры.Звучит легко, но обычно вам придется написать весь сценарий, а затем несколько раз редактировать его, чтобы привести его туда, где он должен быть, при этом говоря все, что вы хотите сказать. Вы должны расставить приоритеты для своих ключевых сообщений и безжалостно вырезать все остальное.

4. Прочтите свои черновики вслух. Это происходит по двум причинам. Во-первых, так как определение времени по количеству слов не является точной наукой, вам следует рассчитывать время, читая сценарий вслух. У вас, вероятно, будет профессионал, который сделает вашу озвучку, но, по крайней мере, это даст вам чувство, если вы будете рядом.Во-вторых, когда вы читаете вслух, вы сможете слышать неловкие или слишком длинные предложения, слова, которые заставляют вас спотыкаться, неуклюже ходить и т. Д.

5. Придайте ритм и такт. В каком-то смысле сценарий видео должен читаться как стихотворение. Это не рифмованное стихотворение в стиле клеймения, но оно должно сочетать более длинные предложения с короткими, сильными предложениями. Повторите ключевые слова или фразы. Повышайте интенсивность через язык.

6. Будьте проще. Избегайте жаргона, больших замысловатых слов, призванных произвести впечатление, и сокращений, которые люди могут не понять.Не используйте длинные сложные предложения, которые теряют людей. Будьте общительны. Будь дружелюбным. Пишите так, как вы бы сказали.

7. Имейте цель и призыв к действию. Конечно, вы хотите, чтобы люди смотрели ваше видео и, возможно, узнали о ваших продуктах или услугах, но что вы хотите, чтобы они делали после просмотра? Позвоню тебе? Перейти на целевую страницу? Купите свой товар? Поделитесь видео? Сообщите пользователю, как в сценарии, так и на экране, что именно вы хотите, чтобы он сделал дальше.

На самом деле мы получили премию «Эмми» за недавно созданное видео, посвященное анимационным поясняющим видеороликам.Проверьте это и дайте нам знать, можем ли мы помочь вам с вашим следующим видеопроектом. Давай поговорим.

Сводка

Название статьи

Написание сценария видео для чайников

Описание

Есть несколько уловок для создания успешного сценария видео. Прочтите наши 7 советов по написанию отличных сценариев видео.

Автор

Майкл Вестафер

Как написать сценарий: 5-шаговый процесс

Вы когда-нибудь задумывались, как написать сценарий? Вы мечтали написать голливудский фильм или, если повезет, создать следующий великолепный сериал?

В эпоху визуализации, с упадком традиционных публикаций, вы могли бы смотреть на написание сценариев как на способ создания «литературы будущего».”

Но каков процесс написания сценария? С чего вообще начать? И почему так важно знать, чем написание фильмов отличается, но также может быть похоже на написание романа?

В этом посте мы рассмотрим пятиступенчатый процесс, который используют профессиональные сценаристы для написания сценария.

Узнайте, как написать сценарий фильма, который понравится режиссерам и публике!

ВСТУПИТЬ:

Почему я подумываю написать сценарий

Ранее на этой неделе мой друг, юрист, обратился ко мне с предложением написать письмо.Он закрывал трагическое, но захватывающее дело и думал, что у него есть потенциал стать крупным фильмом.

Сначала я пожал плечами.

Сценарии похожи на книги: все думают, что в них есть один. Но потом он рассказал мне эту историю, и это было потрясающе — семейные поиски американской мечты, наркодилеры под пристальным вниманием закона, коррупция в полиции, стрельба под действием адреналина — все, что вы могли пожелать в большом кино.

И все же я сдержался.

Самое сложное в создании фильма — это не написать хороший сценарий фильма.Он заставляет кого-то финансировать процесс воплощения истории в жизнь (есть ли у вас сотни миллионов долларов на финансирование фильма?).

К счастью, сказал юрист, он дружит с несколькими людьми в крупной голливудской студии. Он сказал мне: «У нас есть все, что нам нужно. . . кроме отличного сценария ».

«Хм. . . » Я думал. «Может быть, это не пустая трата времени».

По моему опыту, большинство подобных писательских проектов не работают, но когда они появляются, важно дать им все возможное.

В конце концов, по крайней мере, это хорошее письмо практика . И, как всегда, практика всегда полезна для вашего письменного процесса.

Думаете написать сценарий? Посмотрите мастер-класс Аарона Соркина, получившего «Оскар» и телеведущего ( The West Wing ).

Как я научился писать сценарий

В колледже я ходил на занятия с Джоном Уайлдером, ветераном голливудских фильмов и телешоу, который начал занятия с записи «СТРУКТУРА! СТРУКТУРА! СТРУКТУРА!» на доске.

«Какая самая важная часть сценария?» он спрашивал в начале почти каждого урока.

Было очевидно, что он думал. Не формат сценария. Не отраслевой стандарт. Даже главные герои.

Самая важная часть сценария — это СТРУКТУРА .

После этого я написал три коротких сценария, один из которых продюсером MTV Made .

Поразмыслив о странном форматировании написания сценария (которое легче всего освоить с помощью надежного программного обеспечения для написания сценариев), я узнал, что создание уникальных историй для кинопроизводства в такой сжатой форме — это сложных .

Но прошло несколько лет с тех пор, как я попробовал свои силы в написании сценария. Я по умолчанию писатель, а не сценарист.

Мне нужен был пошаговый процесс, который позволил бы мне написать сценарий спецификации, которым я был бы рад поделиться.

Хорошая история, стоившая вложений продюсерской компании.

Хорошая история, которая стоит инвестиций производственной компании, начинается в первую очередь с прочной структуры.

Итак, прежде чем я начал работать над этим новым проектом, предложенным моим другом-юристом, мне пришлось заново ознакомиться с процессом написания сценария.

Мне нужен был план, который поднял бы настроение моего друга интересным сюжетом и СТРУКТУРА .

Что-то большее, чем просто формат сценария. (Хотя, поскольку формат сценария имеет значение при написании сценария, я дам вам несколько советов по этому поводу в конце этого сообщения.)

Я придумал один. За пять шагов.

5 шагов для написания сценария

  1. Создайте свой логлайн
  2. Напишите лечение: ваш первый набросок
  3. Составьте план сценария
  4. Запись черновика флэш-памяти
  5. Редактировать
  6. БОНУС: формат сценария обязателен

Большинство сценаристов следуют этим пяти шагам, чтобы написать сценарий.

Хотя это не означает, что вы должны точно следовать этим шагам, надеюсь, это будет полезным руководством при написании собственного сценария.

1. Создайте свой логлайн

Логлайн — это краткое изложение вашей истории из одного предложения, и они в основном используются как маркетинговый инструмент.

Когда руководитель студии просит вас рассказать ему как можно лучше, ваш логлайн — это первое, что вы упоминаете. (Его также следует использовать на вашей презентации в лифте.)

Loglines также служат полезным руководством, позволяющим сосредоточить внимание на наиболее важных аспектах вашей истории.Другими словами, логи помогают вашей истории оставаться в курсе.

Логи обычно содержат три элемента:

  • Главный герой (главный герой)
  • Антагонист
  • Гол

Также полезно поставить суммирующее прилагательное перед персонажами, чтобы лучше понять их личность. На самом деле это может быть даже более эффективным, чем использование имени персонажа.

Например, логлайн Star Trek может быть:

Упрямый сирота и его вулканский заклятый враг должны спасти Федерацию (и самих себя) от жаждущего мести ромуланца из будущего.

Не слишком сложно, правда?

(Посмотрите логи на IMDB для других примеров.)

Для получения конкретных инструкций о том, как писать логи, посетите мой пост о написании предпосылки для истории. Этот пост также включает в себя рабочий лист, который поможет вам закрепить три упомянутых выше элемента.

2. Напишите лечение: ваш первый набросок

Также в первую очередь маркетинговый документ, обработка дает руководителям представление о том, стоит ли эта история их денег. Однако, как и логлайн, он служит полезным инструментом для писателя, своего рода первым наброском истории.

На протяжении большей части истории искусства краска была чрезмерно дорогой, и поэтому, прежде чем Моне или Пикассо попытались нарисовать полномасштабную картину, они делали «этюд», набросок своего предмета (художники делают это и сегодня. курс).

Если набросок не складывался, они могли сохранить краску и не рисовать, или же пересматривали эскиз, пока он не выглядел стоящим.

Точно так же обращение — это как первый набросок фильма.

Обработки, как правило, представляют собой резюме на двух-пяти страницах, которые разбивают рассказ на три действия.Вот три основных элемента лечения:

  1. Название фильма
  2. Логлайн
  3. Сводка

Лечение может включать отрывки из диалога и описания, но основное внимание уделяется синопсису истории.

Кинематографисты могут просмотреть обработку и иметь хорошее представление о том, стоит ли инвестировать в ваш сценарий (они, вероятно, могут предсказать приблизительную стоимость, которую он будет стоить) и произвести.

3. Составьте план сценария

На этом (чрезвычайно важном) этапе вы сосредотачиваетесь на структуре рассказа.Как сказал Уайлдер, чтобы овладеть сценарием, вы должны овладеть СТРУКТУРОЙ! СТРУКТУРА! СТРУКТУРА!

План вашего сценария — это первый шаг, на создании которого вы должны полностью сосредоточиться. Скорее всего, вы никогда не покажете это никому, кроме своих писателей.

Большинство художественных фильмов имеют объем от 90 до 120 страниц и около сорока сцен. Эти сцены также следуют строгой разбивке на 25-50-25: двадцать пять процентов отведено первому и третьему актам, а пятьдесят процентов занимают второй акт (который можно разделить на две равные части).

Как сценарист, ваша задача в плане — обозначить сеттинг и основные события каждой сцены. Вы также можете включить основной диалог.

Самая известная книга для понимания структуры фильма — Спасите кошку покойного Блейка Снайдера. Если вы хотите узнать больше о том, как написать хороший сценарий или даже хороший рассказ, я настоятельно рекомендую это.

Однако , проведя много лет в писательском мире, я действительно думаю, что вы можете пойти дальше пятнадцати битов Блейка Снайдера.

Я потратил много времени на разработку The Write Structure для этого, и при написании художественного фильма есть свои различия, когда дело доходит до определенных деталей, таких как форматирование, структурирование историй имеет основные сходства.

Независимо от того, какую структуру вы выберете, помните, что план вашего сценария в первую очередь рассчитан на вас.

Пишите столько или меньше, сколько вам нужно.

4. Напишите черновик Flash

Это самая интересная часть, ваш первый настоящий набросок, и здесь применяются те же правила, что и при написании художественной литературы:

  • Пишите быстро
  • Не думай слишком много
  • Не редактировать

Уайлдер сказал мне, что его целью было написать весь первый черновик сценария, около 120 страниц, за три дня.Если вы проделали тяжелую работу по структурированию своей истории в плане, это должно быть легко.

Кстати, если вы не знаете, как отформатировать сценарий, не забудьте прочитать бонусный шаг ниже.

Программа для написания сценариев

также может сэкономить много времени благодаря форматированию. Final Draft — это отраслевой стандарт, но Scrivener, который я использую для написания книг, также имеет полезные инструменты для написания сценариев.

И другие, такие как Celtx, бесплатны (рекомендуется, если вы только начинаете и просто хотите попробовать написать сценарий спецификации).

5. Изменить

Как и в случае с книгами, рекомендую сделать как минимум три черновика.

После того, как вы закончите свой первый черновик, прочтите его один раз, не редактируя (хотя вы можете делать заметки).

Во втором наброске сосредоточьтесь на основных структурных изменениях, включая заполнение зияющих дыр, углубление персонажей, удаление персонажей, которые не продвигают историю, и даже переписывание целых сцен с нуля.

В своем третьем наброске сосредоточьтесь на полировке: в частности, на том, чтобы сделать ваш диалог ярким.Если это ваш последний черновик, не забудьте добавить титульный лист и дважды проверьте все остальные требования к форматированию сценария.

Когда ваш сценарий будет готов, самое время получить отзыв и начать рассылать его в студии. Имейте в виду, что большинство производственных компаний не принимают нежелательные сценарии, и в этом случае вам понадобится агент.

П.С. Если вы хотите нанять развивающего редактора d , чтобы проанализировать структуру вашей истории и сделать ее наилучшим черновиком, обратитесь к нашим сертифицированным редакторам сетки историй.

Удачи!

БОНУС: формат сценария должен быть

Если вы никогда раньше не писали сценарий, то формат сценария может ошеломить вас. Имейте в виду, что если вы приобретете программное обеспечение для написания сценариев, такое как Final Draft, оно позаботится о большинстве конкретных требований, таких как поля страницы (например, левое поле, которое составляет 1,5 ″).

Но, поскольку сценаристы должны понимать форматирование сценария и когда следует использовать определенные правила форматирования, вот список основ форматирования, о котором следует помнить при написании своего первого черновика:

Заголовок сцены

Заголовок сцены или строка заголовка указывает, где происходит действие в новой сцене.Эта строка состоит ВСЕМИ ЗАГЛАВНЫМИ буквами .

В строке вы увидите INT. (интерьер) или EXT. (внешний вид) и место съемки, затем прочерк и время суток.

Слаговые линии отмечают начало новой сцены и помогают читателю сохранять ощущение движения между локациями.

Направления действий

Строки действий идут под заголовком сцены. Они максимально информативны, но кратки и фокусируются на происходящем и визуальных эффектах.

Линии действия, в отличие от описаний, используемых в книгах, часто бывают более прямыми, чем написание пяти смыслов, цель которого — вызвать эмоциональный отклик у читателей романов.

В сценарии редко (если вообще когда-либо) будет больше сюжетных линий, чем диалогов.

Персонажи

Имена персонажей появляются над диалоговым окном и всегда заключаются ВСЕ ЗАГЛАВНЫМИ буквами. Каждый раз, когда говорит другой персонаж, мы будем видеть новое имя над диалогом.

В некоторых случаях действие прерывает диалог, но говорит один и тот же персонаж.Они будут отмечены расширением, которое указывает на то, что тот же персонаж продолжает говорить (см. Расширения ниже).

Диалог

Диалог — самая важная часть сценария. Это большая часть того, что написано в сценарии, и дает режиссерам и актерам указания относительно того, как рассказывается история.

Аарон Соркин (обладатель «Оскара» за фильм « Социальная сеть, » среди других фильмов и телесериалов, таких как Западное крыло ) — любимый сценарист в Голливуде, особенно известный своим мастерством диалога.

Если вы надеетесь научиться овладевать диалогами, как Соркин, вы можете попробовать пройти мастер-класс Аарона Соркина. Вы можете прочитать наш полный обзор его мастер-класса здесь.

Расширения

Расширения сообщают читателю, как слышен диалог. Они идут рядом с именем персонажа в круглых скобках.

Это форматирование, о котором заботится большинство программ для написания сценариев, когда вы его используете.

Некоторые случаи, когда вы могли бы использовать расширение, включают:

  • Голос за кадром (V.О.): когда мы слышим рассказчика, которого нет на экране, и персонажи на экране также не слышат рассказчика (за исключением некоторых исключений, используемых для комедийного эффекта, например, Джордж из джунглей )
  • Off Screen (O.S.): когда говорящий персонаж слышен другими персонажами на экране, но сам не отображается на экране, как объявление, сделанное по внутренней связи
  • Into Devices: когда персонаж говорит в устройство, например в телефон
  • Pre-Lap: когда диалог, начатый в конце одной страницы, переносится на следующую страницу
  • Продолжение (ПРОДОЛЖЕНИЕ): когда тот же персонаж говорит, что и предыдущая строка диалога, прерывается действием

Как и символы, все добавочные номера ЗАГЛАВНЫМИ.

Расширения также являются техническими указаниями, указывая , где актер говорит, что строка является, а . .

В скобках

В скобках написано как расширение (в скобках под именем символа), но вместо этого объясняется, как должна быть выполнена строка.

Саркастически, например. Или смеясь.

Или удар, записанный строчными буквами, что означает паузу.

Переходы

Переходы сообщают редактору, как они должны редактировать сцену.Это когда вы увидите что-то вроде ВЫРЕЗАТЬ: в правой части страницы.

Иногда используется: снимки камерой

Имейте в виду, что хотя вы увидите снимки с камеры в завершенных сценариях, сценаристы не всегда включают это в свои сценарии спецификаций.

Это потому, что выбор кадра принадлежит режиссеру, и он, скорее всего, изменит то, что написано.

Если вы продадите свой сценарий, посмотрите, как он разрывается на части

Киноиндустрия — это сотрудничество.

Для большинства фильмов над сценарием работают несколько сценаристов, а затем, в процессе производства, сценарий постоянно меняется из-за отзывов продюсеров, актеров и режиссера.

Быть сценаристом в Голливуде непросто. Часто первый автор сценария даже не получает должного внимания, потому что большая часть исходного сценария была пересмотрена.

Другие могут продать сценарий за шесть цифр, но при этом постоянно беспокоятся, что не смогут продать следующий.

Это то, о чем я думал, работая над своим новым проектом.

Даже если нашему фильму посчастливится быть купленным, мои шансы на то, что мое имя появится в фильме как сценариста, впервые работающего над сценарием, и аутсайдера индустрии, все еще очень малы. (Я также хотел бы убедиться, что являюсь членом Гильдии сценаристов.)

К счастью, я усвоил последний урок от Джона Уайлдера:

«Вот почему структура так важна. Они могут полностью переписать диалоги, действия и описания настроек, но если у вас есть прочная структура, вы все равно увидите свое имя в конце фильма.”

Разве это не было бы удовольствием?

FADE OUT:

Вы когда-нибудь писали сценарий? Каков ваш процесс? Дайте мне знать в комментариях.

ПРАКТИКА

Напишите логлайн, либо для текущей работы, либо для новой истории. Помните, ваш логлайн должен включать:

  • Главный герой (главный герой)
  • Антагонист
  • Гол

Напишите пятнадцать минут.Когда вы закончите, опубликуйте свой логлайн в разделе комментариев.

И если вы публикуете, не забудьте прокомментировать несколько логов других авторов. Сообщите им, хотите вы посмотреть их фильм или нет!

Примечание. Некоторые из приведенных выше ссылок являются партнерскими. Мы рекомендуем только те книги и инструменты, которые мы использовали и сочли полезными, а покупая их, вы помогаете поддерживать это сообщество писателей. Спасибо!

Джо Бантинг

Джо Бантинг — автор и лидер сообщества The Write Practice.Он также является автором новой книги « Crowdsourcing Paris », реальной приключенческой истории, действие которой происходит во Франции. Это был новый релиз №1 на Amazon. Вы можете следить за ним в Instagram (@jhbunting).

Написание сценариев видео 101: основы, примеры и шаблоны

Вы видели статистику. Не секрет, что видео — один из самых мощных доступных маркетинговых методов. Видео привлекает больше внимания и способствует большему росту, чем любой другой тип медиа.

Однако вы получите выгоду от видеомаркетинга только в том случае, если ваши видео будут, по крайней мере, качественно произведены. Это не означает, что для каждого видео нужен голливудский бюджет, но вам нужно потратить некоторое время на планирование своего видео и написание сценария. Оставьте спонтанные кадры с селфи-камеры в историях в Facebook Live и Instagram.

Хорошая новость в том, что написать сценарий для видео проще, чем кажется. Если у вас нет времени на создание потрясающего сценария, вы можете даже поработать с одним из наших шаблонов сценария видео и в итоге получить фантастический видеоролик.Ваша аудитория никогда не узнает.

Разумеется, вам не обязательно использовать шаблоны сценариев видео. Мы рассмотрим основы и дадим несколько примеров, которые помогут вам написать достойные сценарии видео, с шаблоном или без него.

Как написать сценарий видео: основы

Прежде чем мы начнем с видео, давайте проясним следующее: пусть все будет просто. Когда вы планируете свое видео и пишете сценарий, очень легко начать предлагать всевозможные крутые идеи. В конце концов, в видео можно делать все, что угодно, не так ли?

Конечно, с неограниченным бюджетом.Но мы готовы поспорить, что ваш бюджет ограничен. Так что делайте свои видео как можно проще. Вы будете удивлены, сколько работы требуется для создания минимального количества экранных эффектов.

Помня об этом, начните планировать свой сценарий. Некоторые авторы называют это «предварительным написанием».

Определите свою аудиторию

Это основной продукт любого вида маркетинга или копирайтинга. Ваш контент должен быть адресован конкретному клиенту, иначе он не найдет отклика. Может возникнуть соблазн сделать его как можно более широким, чтобы адресовать каждого потенциального клиента.Избегайте этого искушения. То, что для всех, никому не нравится.

Если вам нужна помощь в определении того, кого вы хотите охватить, выполните упражнения из этого рабочего листа с digitalmarketer.com.

Краткий совет профессионала: Если вы хотите сделать свое видео забавным, убедитесь, что вы очень внимательно оцениваете свою аудиторию и свой продукт. Некоторые аудитории не хотят, чтобы их забавляло, когда они узнают о вашем бренде. Если вы выберете забавную точку зрения, и ваша шутка не удастся, реакция зрителей будет отрицательной, тогда как если вы выберете прямой подход, никто не ожидает, что вас позабавят, и не разочаруется, когда они не будут смеяться.

Выберите цель

Далее вам нужно знать, в чем суть видео. Это будет зависеть от того, где ваша аудитория увидит видео, на каком этапе маркетинговой воронки оно будет использоваться и что вы хотите, чтобы зрители сделали после того, как они посмотрят видео. Если вы читали наше Руководство по видеомаркетингу Facebook, то знаете, что не в каждом видео нужен призыв к действию. В некоторых случаях заставить зрителей смотреть до конца — вполне жизнеспособная цель.

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

Выберите центрального персонажа

Если в вашем видео слишком много людей, за ним будет трудно следить, и фокус будет отклоняться от основной мысли. Определение основного персонажа делает две вещи:

  1. Это упрощает и фокусирует ваше видео.
  2. Это подталкивает вас к созданию истории (если она нужна вашему видео).

Некоторые видеоролики, например обзор продукта, содержат очень мало истории. Однако все же лучше, если большую часть разговора будет говорить один человек. Если вы создаете видео с сюжетной линией, лучше всего сосредоточиться на главном герое.

В любом случае вам нужно знать, кто будет большую часть времени на экране. Если вам нужно два или более человека в видео, выберите одного человека, который будет показывать большую часть экранного времени.

Бонусный совет: Если можете, используйте одного и того же человека в качестве докладчика во всех ваших видео. Это создает непрерывность и близость в вашем видеоконтенте. Вот почему бренды часто создают персонажей, которые действуют почти как талисманы, например Фло из Progressive.

Определите суть видео

Это сводится к очень простому упражнению: в одном предложении скажите кому-нибудь, почему они должны посмотреть это видео.

Когда вы начнете писать свой сценарий, поставьте ответ на этот вопрос как можно ближе к началу.Сообщите зрителям, что они получат, сразу, и вы сохраните больше зрителей.

В качестве бонуса определение точки видео также скажет вам, какой тип видео вам нужен.

Написание сценария видео: забавная часть

Если вы хорошо спланировали, написать будет довольно легко. Вы уже создали свою карту. Просто следуй за ним!

Записывайте визуальные и звуковые элементы

Это очень важно, если вы делаете какой-либо голос за кадром с визуальными эффектами, которые нарезают разные кадры.Но даже если ваше видео — это единственный кадр, в котором кто-то разговаривает, впишите в сценарий визуальные и звуковые аспекты.

Сценарий представляет собой набор инструкций для тех, кто снимает видео, и вы хотите, чтобы видеокоманда без сомнения знала, что должно происходить как с визуальными, так и с аудио элементами.

Простая таблица с двумя столбцами — это простой способ отформатировать ваш скрипт. Легко читать и видеть, как видео будет выглядеть и звучать. Это краткий пример сценария видео из двух столбцов:

Добавьте столько ящиков, сколько вам нужно, чтобы закрыть все кадры в вашем видео.

Напишите свой сценарий, а затем обрежьте по размеру

В зависимости от типа видео, которое вы делаете, вам может потребоваться втиснуть все в 15 или 30 секунд, или у вас может быть целых три минуты или больше для работы.

В любом случае планируйте диалог от 125 до 150 слов в минуту.

Но когда вы начинаете писать, сосредоточьтесь на том, чтобы говорить все, что вы хотите сказать. Как только вы напишете весь диалог, проверьте количество слов, затем начните сокращать и перефразировать, пока он не уложится в отведенное вам время.

Этот метод делает ваш сценарий ясным и кратким. Это заставляет вас оставить только диалог, который вам нужен .

Вот несколько кратких советов по написанию диалогов:

  • Говорите непосредственно с аудиторией. Используйте «вы» и разговаривайте со своими зрителями. Это более представительно, и люди предпочитают, чтобы с ними говорили, а не с ними.

  • Напишите так, как вы бы сказали. Ваша аудитория не будет читать ваш сценарий.Так что пишите то, что вы на самом деле сказали бы, а не то, что лучше всего выглядит на бумаге.

  • Прочтите свой сценарий вслух. Это единственный способ узнать, звучит ли ваш диалог естественно. Если вы внесете изменения, прочтите это вслух еще раз.

Когда диалог станет чистым, вы примерно будете знать, сколько материала вам нужно снять и какие кадры вам нужны. Если вы используете закадровый голос, обязательно снимите дополнительные кадры, чтобы учесть паузы в диалогах и визуальные эффекты, которые не попадают в кадр.

Снимайте видео, но придерживайтесь сценария (в основном)

Технически это не является частью написания сценария. Но это связано с написанием вашего сценария. Все сводится к одному вопросу: зачем писать сценарий, если вы не собираетесь ему следовать? Это все равно, что заплатить архитектору за то, чтобы он нарисовал план этажа, а затем волей-неволей просто построить свой дом.

Начав снимать, как можно точнее следуйте своему сценарию. Небольшие изменения — это нормально, и профессиональные актеры или актеры озвучивания могут внести свой вклад.Или, если вы обнаружите, что у вас нет ресурсов для выполнения того, что вы запланировали, вам может потребоваться внести изменения или вернуться и переписать сценарий.

Но избегайте внесения серьезных изменений в сценарий на лету только потому, что вы думаете о чем-то интересном. Специальные изменения и импровизация редко бывают лучшими. Взрывы — это круто, но не взрывайте все, чтобы просто повеселиться.

Написание правильного сценария

Маркетинговые видеоролики выполняют две задачи:

  1. Они обучают зрителей.
  2. Уговаривают зрителей.

В некоторых видео используется только одно из двух, а в некоторых — и то, и другое, но для простоты мы разделим различные типы на одну из этих двух категорий.

Обучающие видеоролики: сценарии презентационных и поясняющих видеороликов (с шаблонами)

Видеоролики с презентациями и пояснениями относятся к образовательной категории.

Эти видео обычно предназначены для:

  • Демонстрация того, как что-то делать.
  • Объяснение того, как работает ваш продукт или услуга.
  • Представляем, чем занимается ваш бренд.

Ключом к успеху обучающих видео являются краткость и наглядность.

Краткую информацию легче запомнить. Вот почему номера телефонов состоят из семи цифр. Так что делайте видео коротким и разбивайте его на управляемые блоки информации, чтобы помочь зрителям запомнить то, что вы им показали.

Кроме того, включите соответствующие визуальные эффекты, чтобы показать и рассказать зрителю о том, что вы объясняете, что еще больше увеличит удержание.Вот отличное поясняющее видео с сайта Mint:

Он короткий (1:32), визуальные эффекты актуальны, а диалог разбит на отдельные утверждения.

Это объясняющее видео от Dollar Shave Club легендарно:

Посмотрите это несколько раз, потому что это весело. Но как только вы перестанете плеваться кофе, обратите внимание, как диалог разбит на 10-15-секундные фрагменты, которые разделены забавными визуальными эффектами.Отчетливые, запоминающиеся блоки информации.

И просто для смеха вот еще несколько отличных видео, которые вдохновят вас.

Чтобы помочь вам создать собственное поясняющее или презентационное видео, Biteable предлагает видео шаблоны, которые вы можете редактировать самостоятельно. Вот пара примеров:

Рекламные и коммерческие видеоролики предназначены для того, чтобы заставить людей что-то делать. Действие, которое вы совершаете, не всегда является немедленной покупкой.Вы можете использовать убедительное видео, чтобы побудить людей потреблять дополнительный рекламный контент.

Но чаще всего рекламные и коммерческие ролики предназначены для:

  • Показ преимуществ и особенностей вашего продукта или услуги.
  • Демонстрация того, что отличает ваш бренд от конкурентов.
  • Демонстрация того, как ваш продукт или услуга улучшат жизнь ваших клиентов.

Клиенты часто просматривают эти видео в социальных сетях или на боковой панели веб-сайта.Дойти до сути и кратко — не подлежит обсуждению. Призыв к действию также является обязательным.

Эти видео обычно смотрят с выключенным звуком, поэтому напишите свой сценарий и спланируйте визуальные эффекты, чтобы они работали без звука. Включение субтитров — тоже хорошая идея.

Вы могли подумать: «Отлично! Я сэкономлю время и создам видео без диалогов! » Это отличная идея, но даже если в вашем видео нет диалогов, не пропускайте сценарий. Напишите сценарий для визуальных эффектов, чтобы у вас был план работы.

Вот несколько примеров коммерческих видео, которые хорошо работают на нескольких платформах:

Обратите внимание, насколько они короткие. Также обратите внимание, что все они расходные без звука. Но главный вывод из этих видео заключается в том, что вам нужно привлечь внимание, передать свое сообщение и выйти, прежде чем ваш зритель уберет вас со своего экрана.

Мы знаем, что это может быть непросто, поэтому мы создали стартовый пакет коллекций видео шаблонов, которые вы можете использовать и редактировать самостоятельно:

Итак, вы получили знания.У вас есть шаблоны. У вас есть видеоредактор, и у вас есть возможности. А теперь иди и сделай несколько потрясающих видео.

Смотреть в полноэкранном режиме

аналитических материалов по видеомаркетингу, которые еженедельно отправляются на ваш почтовый ящик

Спасибо за подписку

Теперь вы будете получать наши электронные письма только что из печи каждую неделю!

Ммммммм поджаренный!

.