Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » Доработка скрипта на Bash

Ответить
Настройки темы
Доработка скрипта на Bash

Аватара для parrabol

Пользователь


Сообщения: 55
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день. Нужна помощь в доработке скрипта. Нужно чтобы при запуске ./script servername filename

Происходило копирование файла и его извлечение на сервере. Привожу код скрипта

Код: Выделить весь код
#!/bin/bash

dev="deploy@1.2.3.4"
test="deploy@1.2.3.5"

way="/var/www/builds/"
front="/var/www/html/test1/"
file="$way/front_build_$1.tar.gz"
key="/var/www/conf/id_rsa"

scp -i $key $file $test:/var/www/html/test/
ssh -i $key $test "tar xvf /var/www/html/test/front_build_$1.tar.gz --overwrite- dir --exclude='./cache' --exclude='./logs' -C $front
"

Сейчас копирование и извлечение происходит только на сервер test. А мне нужно, чтобы он при запуске понимал сервера, которые в нем описаны. К примеру.

./script dev 10
и, соответсвтенно

./script test 10
Нужна ваша помощь.

Отправлено: 13:06, 11-07-2015

 

Аватара для ruslandh

info man howto


Moderator


Сообщения: 6949
Благодарности: 383

Профиль | Сайт | Отправить PM | Цитировать


Т.е. вам нужны два массива со строками, я правильно понял?

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

http://rtfm.co.ua/bash-ispolzovanie-massivov/
http://www.linux.org.ru/forum/develo...omment-9097969

http://www.linux.org.ru/forum/develo...69?cid=9097969
Цитата:
В баше есть такая функция, readarray…
man -P"less -p'^\s+readarray'" bash
Вы бы его хоть открывали иногда.

-------
Поспешай не торопясь


Отправлено: 13:14, 11-07-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для parrabol

Пользователь


Сообщения: 55
Благодарности: 0

Профиль | Отправить PM | Цитировать


Не совсем так. Я думаю нужно делать так.

case "$1" in
dev)
server="deploy@1.2.3.4"
;;
test)
server="deploy@1.2.3.5"
;;
*)
echo "первый параметр должен быть либо dev, либо test"
exit 1
;;
esac

Отправлено: 13:36, 11-07-2015 | #3


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Есть скрипт на bash обработки некоторых данных, вот через один фрагмент выполнения с помощью команды curl получены данные на короткую ссылку через goo.gl с выводом в файл с именем name в формате json, все эти данные как и сама команда выполнения для примера, и являются частичным фрагментом содержимого скрипта.
Вот команда curl, естественно в ней введен реальный ключ вместо этого {Мой ключ из Goo} -
Код: Выделить весь код
#/bin/sh

curl https://www.googleapis.com/urlshortener/v1/url?key={Мой ключ из Goo} -H 'Content-Type: application/json' -d '{"longUrl": "http://samlab.ws/"}' > name
Вот данные из файла name в таком формате, что получены через эту команду в скрипте -
Код: Выделить весь код
{
 "kind": "urlshortener#url",
 "id": "https://goo.gl/f7p8",
 "longUrl": "http://samlab.ws/"
}
Помогите с изменением скрипа именно на bash, как из этого файла вывести в переменную или в другой файл только данные строки с "id": "https://goo.gl/f7p8", но без кавычек, типа вот только это - https://goo.gl/f7p8? И возможно ли сразу через curl выполнить все это сразу с получением в итоге этого https://goo.gl/f7p8, и что тогда надо еще добавить в эту мою команду?
И еще, если у меня в начале скрипта вот это #/bin/sh вместо #!/bin/bash, играет ли какую роль на само выполнение скрипта, и в чем тут разница? Спасибо!

Отправлено: 15:10, 25-10-2016 | #4


Аватара для MakaBooka

Старожил


Сообщения: 325
Благодарности: 41

Профиль | Отправить PM | Цитировать


Цитата mixmar:
И еще, если у меня в начале скрипта вот это #/bin/sh вместо #!/bin/bash, играет ли какую роль на само выполнение скрипта, и в чем тут разница? Спасибо! »
это легко проверить.
Код: Выделить весь код
ls -l /bin/sh
если это отдельный интерпретатор, то разница есть. если симлинк на bash/dash, то считай разницы нет. если скрипт написан для баша, на sh он может не выполняться, писать универсальные скрипты осиливают не все. проверить можно запустив скрипт конкретным интерпретатором и посмотреть на результат и выхлоп:
Код: Выделить весь код
/bin/sh <имя скрипта>
Цитата mixmar:
И возможно ли сразу через curl выполнить все это сразу с получением в итоге
нет
Цитата mixmar:
и что тогда надо еще добавить в эту мою команду? »
Код: Выделить весь код
curl https://www.googleapis.com/urlshortener/v1/url?key={Мой ключ из Goo} -H 'Content-Type: application/json' -d '{"longUrl": "http://samlab.ws/"}' | grep \"id\" | cut ...
про cut почитайте.

Отправлено: 14:45, 31-10-2016 | #5



Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » Доработка скрипта на Bash

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Java - маленькая доработка скрипта СТАТИСТИКА Kos2an Программирование и базы данных 0 04-10-2013 23:06
Redhat/Fedora - Помогите написать скрипт на Bash VORONUK Общий по Linux 6 18-09-2013 19:56
Любой язык - Аналог which на bash Cypp0raT Скриптовые языки администрирования Windows 1 05-12-2012 20:24
Доработка и отладка сайта на joomla 1.5.22 + jomsocial andrey_mih Вебмастеру 0 03-05-2012 01:38
VBS/WSH/JS - доработка скрипта ZeVSalt Программирование и базы данных 3 23-09-2011 22:33




 
Переход