Добрый день срочно понадобилось сделать скрипт для автоматического формирование в файле VPN IP адреса. Понятия толком не имея о Bash наваял скрипт из примеров что нашел в интернете. Вот теперь хотелось бы его оптимизировать убрать кучу перезаписей в файл. Вот что у меня получилось и работает:
#!/bin/bash
echo конфиг записан в файл
ifconfig ppp0 > /home/ip.txt;
FILENAME=/home/ip.txt;
awk '{print $2 }' $FILENAME > /home/ip1.txt;
FILENAME1=/home/ip1.txt;
IP= cut -d: -f2 $FILENAME1 > /home/ip.txt
i=0;
cat /home/ip.txt | while read line
do
let «i +=1»;
if [ "$i" -eq 2 ]
then
IPp="$http://«$line»/ftp_viewer$»
echo $IPp > /home/ip3.txt
fi
done
exit
Соотвестветственно файлы:
ip.txt
Link
172.17.0.31
POINTOPOINT
2615
2615
3
145685
ip1.txt
Link addr:172.17.0.31 POINTOPOINT packets:2615 packets:2615 txqueuelen:3 bytes:145685
ip3.txt
За все это время не пролучилось никаким образом напрямую пезультат работы команды присвоить переменной. Подскажите кто знает.
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Несколько сумбурная постановка задачи. Тебе надо записать в некий файл строку http://$IP/ftp_viewer, где IP — это значение адреса на интерфейсе ppp0?
Если да, то не то, чтобы ответ, но точно намек: первый раз вижу bash-«программиста», знающего про awk, но не слышавшего о grep ;).
Тут и нет программиста о чем и писал »… Понятия толком не имея о Bash…»
Постановка задачи:
Записать в текстовый файл свой VPN Ip адрес с добавлением «http://» IP «ftp_viewer»
И я ничего не слышал про Bash до вчерашнего дня. Есть конкретные советы grep уже хорошо прочитаю что это за команда.
Хм. Хотя, можно и без grep, но сsed:
#!/bin/bash
IP=`ifconfig ppp0 | awk '/inet/ {print $2}' | sed s/addr://g`
echo «http://$IP/ftp_viewer» > ~/ip.txt
Или в одну команду трансформировать:
echo «http://`ifconfig ppp0 | awk '/inet/ {print $2}' | sed s/addr://g`/ftp_viewer» > ~/ip.txt
Но про grep обязательно почитай! =)
Дима, научи, как вставлять куски кода (или команды) красиво! =)
В панели формы комментария справа есть пара полезных кнопочек :-)
О! Красота!
Теперь давай права редактировать свои сообщения! =)
Спасибо то что я и хотел и намного компактнее
И не знающего про awk, а догадавшегося что он делает по какому-то примеру и дальше уже логически )))
Нужна помощь.Написал скрипт.Он смотрит папки в каталоге и должен выводить дату, время создания папок с нечётными номерами логинов.вот он:
#!/bin/bash
ls -l /home/users | grep -E «s[0-9][0-9]-[0-9][13579]»|awk '(print $6,$7,$8,$9)' > 1.txt
как сделать чтобы он читал только файлы вида s05-15 и т.д., а не tst?
Что такое «только файлы вида s05-15 и т.д., а не tst»?
Видимые пути решения — задать шаблон поиска для ls или воспользоваться вместо ls командой find.
я имел в виду, что нам даны папки вида s05-18,s05-15,tst, и тому подобное инам нужно написать скрипт чтобы он выводил дату, время, и папки с нечётными номерами (только вида s05-15) и записывал их в текстовый файл.Если можете укажите ошибки и как их исправить?
Надо добавить ls поиск по маске. Как-нибудь типа «s05-[0-9][13579]»…
спс