Возможно вы искали: 'Dreams to Reality'

May 15 2025 18:58:20
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Shell-кодинг (shell)

Shell-кодинг (shell)

Ключевые слова: shell, (найти похожие документы)

From: iNo <ino@kodsweb.ru.>
Newsgroups: email
Date: Mon, 24 Oct 2007 14:31:37 +0000 (UTC)
Subject: Shell-кодинг

----------------------------------------------------------------------
# #
# Author: iNo // k0dsweb gr0up #
# Статья является собственностью команды KodsWeb #
# (www.kodsweb.ru) #
# -= 06.09.2006 =- #
# #
# #
# Shell-кодинг. #
# #

Intro...

В данной статье я вкратце опишу shell-программирование,рассмотрю
простейшие примеры и прокомментирую их.Сразу оговорюсь,что эта
статья не является исчерпывающим руководством по shell-
программированию.Но её будет достаточно чтобы освоить его основы.
Несмотря на кажущуюся простоту shell-программирования,оно является
достаточно мощным инструментом администратора unix-системы.Замечу,что
для полноценного администрирования unix-системы,уметь программировать
на shell просто необходимо.
Все примеры протестированы на системе Slackware Linux 10.2 и
полностью работоспособны.


Общие положения.

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

#!/bin/sh
#А вот это уже комментарий


Переменные,ввод и вывод данных.

Для задания переменных используется оператор присваевания "=".Синтаксис
следующий:

<переменная>=<значение>


Замечу,что в отличие от языков perl и php,между знаком "=" и остальными
параметрами нельзя ставить пробел.В этом случае интерпретатор выдаст
ошибку.Чтобы обратится к заданной переменной ,надо вызвать её поставив
перед ней знак $.Удалить переменную можно с помощью оператора unset.

Оператор Echo просто выводит строку(или переменную), идущую после него:

#!/bin/sh
var=Vasya
echo $var

>--------------------------------------<
Vasya
>--------------------------------------<

#!/bin/sh
echo My name is Vasya

>--------------------------------------<
My name is Vasya
>--------------------------------------<


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

#!/bin/sh
echo `My name is Vasya"

>--------------------------------------<
Error: My: command not found
>--------------------------------------<

#!/bin/sh
echo 'ls -a'

>--------------------------------------<
. .. .bash_history script.sh
>--------------------------------------<


Оператор read присваевает значение переменной.Вот пример,который
просит ввести переменную var,считывает её а затем выводит.

#!/bin/sh
echo "Input var:"
read var
echo "The var is $var"

>--------------------------------------<
Input var:
123
The var is 123
>--------------------------------------<


Агрументы командной строки.

Как и во всех консольных программах, в shell-сценарий можно передавать
аргументы из командной строки.Переменные $1..$9 соответствуют параметрам,
переданным из командной строки сценарию.Переменная $0 содержит имя
интерпретируемого файла.$#-содержит количество переданных аргументов.
$* и $@ содержат все аргументы,но в $@ все аргументы выделены кавычками.
Напишем скрипт,который выводит 2 аргумента командной строки и имя
исполняемого файла.Запуск скрипта: ./script.sh 1 2

#!/bin/sh
echo "Name:$0"
echo "First argument:$1"
echo "Second argument:$2"

>--------------------------------------<
Name:./script.sh
First argument:1
Second argument:2
>--------------------------------------<


Арифметические операции.

Арифметические операции производятся с использованием оператора let.
Операции:

* - умножение
/ - деление
+ - сложение
- - вычитание
% - деление с остатком


Синтаксис:

let <значение> <оператор> <значение>


Пример:

#!/bin/sh
let res=2*7
echo $res

>--------------------------------------<
14
>--------------------------------------<


Оператор test или [].

Данные операторы предназначены для выполнения сравнений двух значений.
Если сравнение успешно-оператор возвращает 0,иначе 1.Код завершения
последней выполненной команды хранится в специальной переменной $?.
Синтаксис:

test <значение> -опция <значение>


или

[<значение> -опция <значение>]


Пример:

#!/bin/sh
var=10
[ $var -eq 8 ]
echo $?

>--------------------------------------<
1
>--------------------------------------<


Ниже приведены все опции оператора test(или []):

Сравнение целых чисел:

-gt больше чем
-lt меньше чем
-ge больше чем либо равно
-le меньше чем либо равно
-eq равно
-ne не равно

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

-z проверка на наличие пустой строки
-n проверка на наличие строки-значения
= равенство
!= неравенство
str проверка на наличие строки,состоящей из нулей

Логические операции:

-a И
-o ИЛИ
! НЕ

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

-f установка факта существования файла и его регулярности
-s проверка,не является-ли файл пустым
-r проверка возможности считывания файла
-w проверка возможности записи файла
-x проверка исполняемости файла
-d проверка,является-ли файл каталогом
-h проверка,является-ли файл ссылкой
-c проверка,является-ли файл байт-ориентированным устройством
-d проверка,является-ли файл блок-ориентированным устройством


Условия.

Ниже описан синтаксис всех условных операторов,с примерами.

1)if <команда> then
<команда>
fi

Пример:

#!/bin/sh
if [ $1 -eq 10 ]; then
echo var=10
fi


Результат работы,при переданном параметре равном 10:

>--------------------------------------<
var=10
>--------------------------------------<


2)if <команда> then
<команда>
else
<команда>
fi

Пример:

#!/bin/sh
if [ $1 -eq 10 ]; then
echo var=10
else
echo var!=10
fi


Результат работы,при переданном параметре равном 10:

>--------------------------------------<
var=10
>--------------------------------------<


Результат работы,при переданном параметре равном 7:

>--------------------------------------<
var!=10
>--------------------------------------<


3)if <команда> then
<команда>
elif
<команда>
else
<команда>
fi

Пример:

#!/bin/sh
if [ $1 -eq 10 ]; then
echo var=10
elif [ $1 -eq 9 ]; then
echo var=9
else
echo var!=10 and var!=9
fi


Результат работы,при переданном параметре равном 10:

>--------------------------------------<
var=10
>--------------------------------------<


Результат работы,при переданном параметре равном 9:

>--------------------------------------<
var=9
>--------------------------------------<


Результат работы,при переданном параметре равном 8:

>--------------------------------------<
var!=10 and var!=9
>--------------------------------------<


4)case <строка> in
<шаблон>)
<команды>
;;
*)
<команды>
;;
esac

Case-конструкция позволяет выбирать один из нескольких альтернативных
вариантов.

#!/bin/sh
case $1 in
1)
echo arg is 1
;;
2)
echo arg is 2
;;
*)
echo arg is other
;;
esac


Результат работы,при переданном параметре равном 1:

>--------------------------------------<
arg is 1
>--------------------------------------<


Результат работы,при переданном параметре равном 2:

>--------------------------------------<
arg is 2
>--------------------------------------<


Результат работы,при переданном параметре равном 10:

>--------------------------------------<
arg is other
>--------------------------------------<


Циклы.

1)while <условие>
do
<команды>
done

Выполняет команды пока условие истино.

Пример:

#!/bin/sh
cont=yes
while [ $cont = yes ]
do
echo -n "continue?"
read cont
done

>--------------------------------------<
continue?
yes
continue?
no
>--------------------------------------<


2)until <условие>
do
<команды>
done

Выполняет команды пока условие ложно.

Пример:

#!/bin/sh
cont=yes
until [ $cont = no ]
do
echo -n "continue?"
read cont
done

>--------------------------------------<
continue?
yes
continue?
no
>--------------------------------------<


3)for <переменная>
do
<команды>
done

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

Пример:

#!/bin/sh
for var
do
echo $var
done


Результат работы программы,с параметрами 1 2 3 4 5:

>--------------------------------------<
1
2
3
4
5
>--------------------------------------<


4)for <переменная> in <строка>
do
<команды>
done

Эта конструкция отличается от обычного for тем,что
параметры берутся не из командной строки,а из строки
после оператора in.

5)select <строка> in <перечень элементов>
do
<команды>
done

Конструкция select создаёт меню на основе элементов заданного
списка,а затем выполняет для него указанную команду.

Пример:

#!/bin/sh
select var in 1 2 3
do
case $var in
1)
echo Number 1
;;
2)
echo Number 2
;;
3)
echo Number 3
;;
*)
echo Other
;;
esac
done

>--------------------------------------<
1) 1
2) 2
3) 3
#? 3
Number 3
#? _
>--------------------------------------<
1278 Прочтений •  [Shell-кодинг (shell)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Shell-кодинг (shell) Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка