LINUX_SRV Telegram 343
Примеры типовых операций в bash-скриптах

1.Ввод-вывод, перенаправление


#!/bin/bash
# Любой shell-скрипт всегда начинается со строчки #!/bin/bash (или #!/bin/sh)
# Комментарии всегда начинаются со знака #
# Для того, чтоб вывести на экран сообщение, используем команду ECHO
echo "hello, world"
# а это пример форматированного вывода... почти как в Си
printf "форматированный вывод десять=%d строка=%s float=%f шестнадцатиричное_число=0x%X\n" 10 "строка" 11.56 234
# пример чтения ввода с клавиатуры
read A
echo $A
printf "
вы только что ввели слово: %s\n" "$A"
#перенаправление, конвейеры, получение результата вывода другой программы
# пример генерации пароля из 10 букв
PASSWORD1=`cat /dev/urandom | tr -d -c 'a-zA-Z0-9' | fold -w 10 | head -1`
echo Password=$PASSWORD1
#кавычки вида `` дают результат вывода на экран того, что внутри них (т.е. выполняется
#программа или скрипт, написанные внутри таких кавычек и результат, выводимый ими на
#стандартный вывод является результатом операции "обратные кавычки"

#в данном случае результатом является вывод конвейера из нескольких программ.
#операция | обозначает конвейер. Т.е. в нашем примере:
#cat /dev/urandom выводит на стд.вывод содержимое файла /dev/urandom (спец.файл для генерации псевдослуч.чисел)
#tr осуществляет трансляцию,т.е. заменяет одни байты другими (это нужно, чтоб избежать появления в пароле непе-
#чатаемых символов)
#fold разбивает то, что ей пришло на стд.ввод на строки длиной 10 символов и выводит это на стд.вывод
#head -1 выводит первую строчку того, что ей пришло на стандартный ввод.

# или так:
PASSWORD2=`cat /dev/urandom | tr -dc _A-Z-a-z-0-9 | head -c10`
echo Password=$PASSWORD2



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

chmod a+x script.sh


2.Арифметические действия, циклы по кол-ву раз


#!/bin/bash
A="10"
B="5"
C=`expr $A + $B`
printf "A=10 B=5 C=expr \$A + \$B C=%d \n" "$C"

# пример цикла по i
I=0
while [ $I -lt 15 ]
do
printf "0x%02x " "$I"
I=`expr $I + 1`
done
echo


3.Разного рода проверки


#!/bin/bash
# пример проверки существования файла
# создаем файл test1
touch test1
# проверяем существование файла test1
if [ -f test1 ] ; then
echo "файл test1 существует"
fi
# проверяем несуществование файла test2
if ! [ -f test2 ] ; then
echo "файл test2 не существует"
fi
# краткая справка по другим опциям команды [ ]
# -d filename директория существует
# -f filename файл существует
# -L filename символьная ссылка существует
# -r, -w, -x файл доступен для чтения, записи или выполнения
# -s filename файл существует и имеет ненулевую длину
# f1 -nt f2 f1 новее чем f2
# f1 -ot f2 f1 старше чем f2


4.Работа с FTP в скрипте.


#!/bin/bash
ADDRESS=192.168.1.150
USER=root
PASSWORD=root
ftp -n -p ADDRESS <<EoF
user USER PASSWORD
cd /usr/bin
put my_cool_program
quit
EoF
exit 0


5.Работа с telnet в скрипте.


#!/bin/bash
(
sleep 1
echo "root"
echo "cd /tmp"
echo "ls"
sleep 1
echo "quit"
) | telnet 192.168.1.150

Примечание: в этом случае root логинится без пароля, если нужен пароль, то надо добавить после echo "root" еще одно эхо с паролем.


Прочее полезное.


#!/bin/bash
# пример цикла по множеству значений
for A in раз два три четыре пять
do
echo "$A,"
done
echo "вышел заяц погулять"
echo
2👍2



tgoop.com/linux_srv/343
Create:
Last Update:

Примеры типовых операций в bash-скриптах

1.Ввод-вывод, перенаправление


#!/bin/bash
# Любой shell-скрипт всегда начинается со строчки #!/bin/bash (или #!/bin/sh)
# Комментарии всегда начинаются со знака #
# Для того, чтоб вывести на экран сообщение, используем команду ECHO
echo "hello, world"
# а это пример форматированного вывода... почти как в Си
printf "форматированный вывод десять=%d строка=%s float=%f шестнадцатиричное_число=0x%X\n" 10 "строка" 11.56 234
# пример чтения ввода с клавиатуры
read A
echo $A
printf "
вы только что ввели слово: %s\n" "$A"
#перенаправление, конвейеры, получение результата вывода другой программы
# пример генерации пароля из 10 букв
PASSWORD1=`cat /dev/urandom | tr -d -c 'a-zA-Z0-9' | fold -w 10 | head -1`
echo Password=$PASSWORD1
#кавычки вида `` дают результат вывода на экран того, что внутри них (т.е. выполняется
#программа или скрипт, написанные внутри таких кавычек и результат, выводимый ими на
#стандартный вывод является результатом операции "обратные кавычки"

#в данном случае результатом является вывод конвейера из нескольких программ.
#операция | обозначает конвейер. Т.е. в нашем примере:
#cat /dev/urandom выводит на стд.вывод содержимое файла /dev/urandom (спец.файл для генерации псевдослуч.чисел)
#tr осуществляет трансляцию,т.е. заменяет одни байты другими (это нужно, чтоб избежать появления в пароле непе-
#чатаемых символов)
#fold разбивает то, что ей пришло на стд.ввод на строки длиной 10 символов и выводит это на стд.вывод
#head -1 выводит первую строчку того, что ей пришло на стандартный ввод.

# или так:
PASSWORD2=`cat /dev/urandom | tr -dc _A-Z-a-z-0-9 | head -c10`
echo Password=$PASSWORD2



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

chmod a+x script.sh


2.Арифметические действия, циклы по кол-ву раз


#!/bin/bash
A="10"
B="5"
C=`expr $A + $B`
printf "A=10 B=5 C=expr \$A + \$B C=%d \n" "$C"

# пример цикла по i
I=0
while [ $I -lt 15 ]
do
printf "0x%02x " "$I"
I=`expr $I + 1`
done
echo


3.Разного рода проверки


#!/bin/bash
# пример проверки существования файла
# создаем файл test1
touch test1
# проверяем существование файла test1
if [ -f test1 ] ; then
echo "файл test1 существует"
fi
# проверяем несуществование файла test2
if ! [ -f test2 ] ; then
echo "файл test2 не существует"
fi
# краткая справка по другим опциям команды [ ]
# -d filename директория существует
# -f filename файл существует
# -L filename символьная ссылка существует
# -r, -w, -x файл доступен для чтения, записи или выполнения
# -s filename файл существует и имеет ненулевую длину
# f1 -nt f2 f1 новее чем f2
# f1 -ot f2 f1 старше чем f2


4.Работа с FTP в скрипте.


#!/bin/bash
ADDRESS=192.168.1.150
USER=root
PASSWORD=root
ftp -n -p ADDRESS <<EoF
user USER PASSWORD
cd /usr/bin
put my_cool_program
quit
EoF
exit 0


5.Работа с telnet в скрипте.


#!/bin/bash
(
sleep 1
echo "root"
echo "cd /tmp"
echo "ls"
sleep 1
echo "quit"
) | telnet 192.168.1.150

Примечание: в этом случае root логинится без пароля, если нужен пароль, то надо добавить после echo "root" еще одно эхо с паролем.


Прочее полезное.


#!/bin/bash
# пример цикла по множеству значений
for A in раз два три четыре пять
do
echo "$A,"
done
echo "вышел заяц погулять"
echo

BY Типичный Сисадмин


Share with your friend now:
tgoop.com/linux_srv/343

View MORE
Open in Telegram


Telegram News

Date: |

A vandalised bank during the 2019 protest. File photo: May James/HKFP. Private channels are only accessible to subscribers and don’t appear in public searches. To join a private channel, you need to receive a link from the owner (administrator). A private channel is an excellent solution for companies and teams. You can also use this type of channel to write down personal notes, reflections, etc. By the way, you can make your private channel public at any moment. There have been several contributions to the group with members posting voice notes of screaming, yelling, groaning, and wailing in different rhythms and pitches. Calling out the “degenerate” community or the crypto obsessives that engage in high-risk trading, Co-founder of NFT renting protocol Rentable World emiliano.eth shared this group on his Twitter. He wrote: “hey degen, are you stressed? Just let it out all out. Voice only tg channel for screaming”. Joined by Telegram's representative in Brazil, Alan Campos, Perekopsky noted the platform was unable to cater to some of the TSE requests due to the company's operational setup. But Perekopsky added that these requests could be studied for future implementation. Unlimited number of subscribers per channel
from us


Telegram Типичный Сисадмин
FROM American