Меню Рубрики

Аналог bat файлов в linux

Как писать скрипты (аналог bat файлы в виндах)?

Так же как и в виндах: написал в текстовом файле команды каждая с новой строчки, переименовал этот файл в bat и можно запускать его?

Есть где манула по этой теме?

Re: Как писать скрипты (аналог bat файлы в виндах)?

Re: Как писать скрипты (аналог bat файлы в виндах)?

PS: что меня всегда удивляло, так это то, что в сообществе Linux на свой вопрос, в большинстве случае, получишь либо «Ги, сына, LOL (c)» либо. ни хрена не получишь. ;-Е

Так держать, господа линуксоводы! Еще немножко и билл г. будет призидентом земного шара. ;(

Re: Как писать скрипты (аналог bat файлы в виндах)?

Re: Как писать скрипты (аналог bat файлы в виндах)?

Гы, сына, ЛОЛ! А не пробовал зайти в раздел «документация»?

Re: Как писать скрипты (аналог bat файлы в виндах)?

Поищи ещё книгу: Linux & UNIX програмирование в SHEL автор Дэвид Тейнсли . прошу не путать с Фигурновым

Re: Как писать скрипты (аналог bat файлы в виндах)?

> Так же как и в виндах: написал в текстовом файле команды каждая с новой строчки, переименовал этот файл в bat и можно запускать его?

ОС анализирует файловый атрибут исполняемости файла (существуют: read, write, execute).

Далее, в случае успеха, определяется тип файла.

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

т.е. имя файла роли не играет. Важно: признак исполнения и содержимое.

Источник

как создать аналог батника?

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

через консоль прописал и работает, а как создать файлик, где его сохранить, и как его запускать?

/ — сокращение для домашней директории твоего пользователя, т.е. для /home/user
собственно, можно создать файлик руками в текстовом редакторе и вписать туда

а как сделать ярлык на рабочем столе, для запуска этого файла?

иначе запуститься «внутреняя» команда из набора встроенных утилит терминала которые обычно обзываются — core-utilits.

в убунте полный путь до команды может быть другой, командой

нужно узнать полный путь до команды shutdown, т.к её место размещение может быть другое

заскриншотил

Источник

sgww

WWW.SGWW.RU

живой журнал SGWW

Командные файлы Linux

В Linux, так же как и в операционных системах семейства Microsoft Windows можно создавать командный файл . которые содержат в себе набор команд интерпретатора shell. Такие файлы имеют свой синтаксис, который позволяет оперировать такими структурами как циклы и условия. Далее основы shell программирования linux на примере командной строки ubuntu 9.04 и интерпретатора bash.

Основы

Запишем в файл sample последовательность команд

$ cat sample
pwd
ls
echo The END

А теперь выполним эти команды

$ sh sample
/home/sgww
cpp file.txt mydaemon net_sh perl php sample
The END

Таков принцип .

Командный файл легко сделать исполняемым

$ chmod +x sample
$ /home/sgww/sample
/home/sgww
cpp file.txt mydaemon net_sh perl php sample
The END

$ cat sample
read x #вводим x
read y #вводим y
echo `expr $x ‘*’ $y + 7`

Всё что за знаком # это коментарий и интерпритатором не воспринимается
Не относится к оболочке csh!

Параметры

$1, $2 . $9 — позволяют задавать аргументы командной строки для выполняемого файла

$ cat sample
echo the first parameter: $1
echo the second parametr: $2
echo the third parameter: $3
ls $1 $2 $3

$ /home/sgww/sample -l -s -r
the first parameter: -l
the second parametr: -s
the third parameter: -rtotal 28
4 -rwxr-xr-x 1 sgww sgww 100 Mar 2 11:19 sample
4 drwxr-xr-x 2 sgww sgww 4096 Dec 15 16:52 php
4 drwxr-xr-x 2 sgww sgww 4096 Feb 1 15:39 perl
4 -rw-r—r— 1 sgww sgww 79 Mar 1 16:16 net_sh
4 drwxr-xr-x 2 sgww sgww 4096 Feb 1 17:15 mydaemon
4 -rw-r—r— 1 sgww sgww 56 Mar 1 17:18 file.txt
drwxr-xr-x 2 sgww sgww 4096 Feb 1 17:15 cpp

$# — задает общее количество параметров с которым вызывается командный файл

$ cat sample
echo total parameters are: $#
$ sample param1 param2 param3
total parameters are: 3

$* — содержит сразу все параметры

$ cat sample
echo total parameters are: $*
$ sample All parameters are in this variable
total parameters are: All parameters are in this variable

Переменные

Имя переменной может начинаться с буквы или символа подчереркивания
знак равенства(=) это оператор присваиивания

_var=1
_word =slovo
value=»t ak aia dli nna iain epo niat naia str oka»

Тип данных переменных shell это всегда строка символов!

$ cat sample
_string=»Hello from Perm»
echo $_string
$ /home/sgww/sample
Hello from Perm

результат выполения команды в переменную (команда обрамляется обратными апострофами)

$cat sample
_date=`date`
echo $_date
$/home/sgww/sample
Tue Mar 2 11:41:30 YEKT 201

ввод значения переменной в консоли

$ cat sample
echo Enter data:
read data1
read data2
echo Your data: $data1 and $data2
$ /home/sgww/sample
Enter data:
Linux
Windows
Your data: Linux and Windows

Системные переменные

$ cat sample
echo $PATH
echo $HOME
echo $MAIL
echo $SHELL
$ /home/sgww/sample
/usr/local/bin:/usr/bin:/bin:/usr/bin/X1 1:/usr/games
/home/sgww
/var/mail/sgww
/bin/bash

PATH — пути поиска исполняемых файло (так как каталога /home/sgww/ там нет, постояно приходилось писать полный путь /home/sgww/sample для выполнения команды)
HOME — домашний каталог
MAIL — файл электронной почты
SHELL — оболочка в которой работаем

Добавим к переменной PATH каталог HOME что бы не приходилось постоянно писать полный путь

$ cat sample
PATH=$PATH:$HOME

Эти строки следует добавить в

/.bash_profile
теперь нет необходимости писать полный путь до команды

Специальные символы

* — любая последовательность, любых символов
? — один любой символ
[. ] — любой из символов диапазона

$echo *
cpp file.txt mydaemon net_sh perl php sample
$ echo «*»
*

$ cat sample
text=»This is a text»
echo ‘$text’
$ sample
$text

$ cat sample
text=»This is a text»
echo \$text
$ sample
$text

$ cat sample
text=`pwd`
echo $text
$ sample
/home/sgww

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

Для выполнения арифметических операций в командном файле понадобиться команда expr

$ expr 7 + 96
103
$ expr 87 — 555
-468
$ expr 18 / 2
9
$ expr 19 / 2
9
$ expr 19 % 2
1
$ expr 6 \* 32
192
$ expr 6 ‘*’ 32
192
$ expr 6 * 32
expr: syntax error

Если при умножении не поставить \ или » то * будет восприниматься как любой символ

Стоит отметить, что \ — это не деление, а целая часть от деления, операция % дает остаток от деления

Переменные окружения, команда export и unset

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

Их полный списко можно посмотреть командой export

$ export
declare -x HISTCONTROL=»ignoreboth»
declare -x HOME=»/home/sgww»
declare -x LESSCLOSE=»/usr/bin/lesspipe %s %s»
declare -x LESSOPEN=»| /usr/bin/lesspipe %s»
declare -x LOGNAME=»sgww»
.

Задать свою переменную

$ name=Pavel && export name
$ echo $name
Pavel

$ unset name
$ echo name

Условие IF

Для составления условных выражений оператора if очень полезна программа test.

$ cat sample
if test -r sample
then
echo True
else
echo False
fi
$ sample
True

В этом примере test -r sample — это условие
echo True выполняется если условие истино
echo False если ложно

Программа test предназначена для проверки типов файлов и сравнения значений

$test -r file # Истино если файл file существует и доступен для чтения
$test -w file # Истино если файл file существует и доступен для записи
$test -x file # Истино если файл file существует и доступен для выполнения

$ x=32 && export x
$ y=32 && export y

$test $x -eq $y # Истино если $x равен $y
$test $x -en $y # Истино если $x не равен $y
$test $x -ge $y # Истино если $x больше или равен $y
$test $x -gt $y # Истино если $x больше $y
$test $x -le $y # Истино если $x меньше или равен $y
$test $x -lt $y # Истино если $x меньше $y

Остальные параметры можно посмотреть в man test

Цикл FOR

$ cat sample
for x in 1 two 3
do
echo $x
done
$ sample
1
two
3

В этом цикле код между do и done выполниться 3 раза, при этом первый раз
x=1, второй раз x=two и последний x=3

Другой интересный пример

$ cat sample
for x in *
do
echo $x
done
$ sample
cpp
demo
file.txt
mydaemon
net_sh
perl
php
sample

* в списке переменных цикла, заставляет for использовать в качестве значения $x элементы текущего каталога

Циклы WHILE и UNTIL

$ cat sample
while test -r file
do
sleep 10
echo file exists
done
echo file does not exist

$ touch file
$ sample
file exists
file exists
Ctr+Z
[1]+ Stopped sample
$ rm file
$ fg
sample
file exists
file does not exist

$ cat sample
until test -r file
do
sleep 5
echo file does not exist
done
echo file exists
$ sample
file does not exist
file does not exist
Ctr+Z
[1]+ Stopped sample
$ touch file
$ fg
sample
file does not exist
file exists
$

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Установить mac os на ноутбук hp pavilion
  • Установить mac os на ubuntu
  • Установить mac os maverick
  • Установить composer mac os
  • Устанавливаем mac os x на mac