Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Переменные в bash-скриптах  (Прочитано 986 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн a1eXei

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
    • Просмотр профиля
Переменные в bash-скриптах
« : 17 Март 2016, 20:38:15 »
Добрый день.
Сильно не бейте :coolsmiley:
Как можно в скрипте сделать переменную как результат выполнения команды?
Т.е. вот скрипт для примера, выполнить команду uname -a и отправить на другой сервер POST-запросом.
#!/bin/sh
command=uname -a
curl -s \
-X POST \
https://domain.com/robot/command \
-d text="Результат команды uname -a вставить сюда." \
вроде так, только не пойму как выполнить команду, результат присвоить переменной и подставить дальше в скрипте, если значение переменной не любит пробелы.

Оффлайн piyavking

  • Активист
  • *
  • Сообщений: 645
  • Никогда так нЕ было, чтобы никак не бЫло
    • Просмотр профиля
    • Пиявкин
Re: Переменные в bash-скриптах
« Ответ #1 : 17 Март 2016, 20:45:32 »
#!/bin/bash

однострочная_переменная=`команда`
многострочная_переменная="$(команда)"
18.04 Minimal, awesomeWM/иксы без WM, luakit, vim/gvim, mpv/smplayer, jack+wineasio

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5659
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Re: Переменные в bash-скриптах
« Ответ #2 : 17 Март 2016, 20:46:45 »
Код: Bash
  1. result=$(uname -a)
  2. curl -s -X POST 'https://domain.com/robot/command' -d text="$result"
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26067
    • Просмотр профиля
Re: Переменные в bash-скриптах
« Ответ #3 : 18 Март 2016, 03:15:16 »
#!/bin/bash

однострочная_переменная=`команда`
многострочная_переменная="$(команда)"
Неверно. $( ... ) в обоих случаях.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн piyavking

  • Активист
  • *
  • Сообщений: 645
  • Никогда так нЕ было, чтобы никак не бЫло
    • Просмотр профиля
    • Пиявкин
Re: Переменные в bash-скриптах
« Ответ #4 : 19 Март 2016, 17:31:09 »
Неверно. $( ... ) в обоих случаях.

Всмысле?

piyavking@koeuk:~$ seq 1 5
1
2
3
4
5
piyavking@koeuk:~$ echo $(seq 1 5)
1 2 3 4 5
piyavking@koeuk:~$ echo "$(seq 1 5)"
1
2
3
4
5
piyavking@koeuk:~$ echo `seq 1 5`
1 2 3 4 5
piyavking@koeuk:~$

18.04 Minimal, awesomeWM/иксы без WM, luakit, vim/gvim, mpv/smplayer, jack+wineasio

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26067
    • Просмотр профиля
Re: Переменные в bash-скриптах
« Ответ #5 : 19 Март 2016, 19:41:17 »
Читайте маны.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн piyavking

  • Активист
  • *
  • Сообщений: 645
  • Никогда так нЕ было, чтобы никак не бЫло
    • Просмотр профиля
    • Пиявкин
Re: Переменные в bash-скриптах
« Ответ #6 : 20 Март 2016, 01:48:56 »
AnrDaemon,
выражайтесь яснее.
18.04 Minimal, awesomeWM/иксы без WM, luakit, vim/gvim, mpv/smplayer, jack+wineasio

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 26067
    • Просмотр профиля
Re: Переменные в bash-скриптах
« Ответ #7 : 20 Март 2016, 02:08:15 »
piyavking, это вы выражайтесь яснее.
Ваша демонстрация чётко определила причину, почему бэктики использовать нельзя.
Они не цитируются и не вкладываются нормально, в отличие от $( ... ).
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.065 секунд. Запросов: 25.