Моя учеба в написании скриптов в bash

Доброго времени суток, начинающие и продвинутые линуксойды! :=) Я с Linux работаю примерно год и с недавнего времени появился у меня огромный интерес к BASH.
Мой интерес заключается в часности к написанию скриптов в нем, для автоматизации тех или иных действий.
Решил я тут создать и вести свой блог (думаю админы не против :=)), в котором буду выкладывать свои наработки и черновики, моих скриптов. Вообщем, все что я учу, выкладываю здесь :=)
Я нашел в интернете одну книгу, которая как мне сказали, очень эфективная. Конечно сразу “суперскриптов” от меня ждать не стоит, но Москва тоже не сразу строилась ;=)
И вот представляю свой первый в жизни скрипт:
Он считывает с системы время и дату + время последней перезагрузки системы + последнего зарегистрированного пользователя в системе и все это перенаправляет в файл, в моем случае result.log:
#!/bin/sh
date 1>/home/undertaker/result.log
uptime 1>>/home/undertaker/result.log
users 1>>/home/undertaker/result.log
Вот такой вот маленький скрипт :=) После того как я его написал в текстовом документе, сохранил в формат .sh, присвоил я права на чтение и запуск, командой:
chmod +rw
И запускаем его командой (находясь в той же директории):
./result.log
Критика моих действий - всегда приветствуется :=)
- undertaker's блог
- Войдите или зарегистрируйтесь
- 144 просмотра
- 0











я в свою очередь хотел бы добавить:
ты в скрипте написал первой строчкой (#!/bin/sh), какой интерпритатор должен его исполнять (bash). В этом случае ты можешь это не писать, потому что так и так по-умолчанию идет интерпритатор bash в linux и твой скрипт не содержит спецефических команд, которые не под силу bash'у. Это первое :)
Второе: в команде chmod, ты написал "+rw", значит права на исполнения этого скрипта есть у всех, если ты напишешь команду так:
chmod u+rx, то тогда права только у создателя, то есть у тебя :)
Еще хотел бы пояснить, про 3 последние строчки скрипта, просто может кому это интересно.
после команд date, uptime и user стоит цифра "1" это называется перенаправление. Всего в системе по-умолчанию 3 источника информации:
0 (stdin) - стандартное устройство ввода, клавиатура;
1 (stdout) - стандартное устройство ввыода, экран;
2 (stderr) - сообщения об ошибках с экрана;
в скрипте указано "1", значит инфа берется с экрана и далее символ ">" перенаправляет ее в файл (создает файл с нуля), в твоем случае result.log, а символ ">>" добавляет уже в существующий файл информацию, сохраняя ее в конце документа.
Думаю кому будет полезно, что я написал :)
aka Makaveli
ооо респект, за такое разжовывание, мне всегда нравится такое еще несколько раз перечитывать! :=)
Вот еще для автоматизации вечерних прогулок
#!/bin/bash
#пример lavka 80 200 30 5
#вес 80 кг
#200 см - расстояние между опорами
#30 см - ширина доски
#5 см - толщина доски
#в ответ получаете ответ на вопрос
# А не опасно ли сесть посредине этол лавочки из сосновой доски?:)
let P=$1
let l=$2
let b=$3
let h=$4
let W=b*h*h/6
let p=P*1,1
let M=p*l/4
let s=M/W
echo 'Ваш вес '$p' кг'
echo 'Длинна лавочки '$l' cм'
echo 'Ширина доски '$b' см'
echo 'Толщина доски '$h' см'
if [ "$s" -gt 120 ]
then echo "Опасно"
else echo "Нормуль"
fi
Это для самой простой конструкции места отдыха, но можно тему развить и для более сложных с множеством не широких дощечек:)
блин, вот когда так все расписано - сразу хочется попробовать самому ))