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


Автор Тема: запуск из bash поги на си c параметрами  (Прочитано 591 раз)

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

Оффлайн BorisBritva

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Подскажите плиз.

Есть bash и в нем формируются 2 переменные.
Как запустить прогу на си и передать туда два параметра из переменных, и получить ответ от проги?

Спасибо.

Punko

  • Гость
Re: запуск из bash поги на си c параметрами
« Ответ #1 : 12 Февраль 2016, 01:01:35 »
BorisBritva,
Получить ответ в скрипт? Я точно не знаю, но передавать аргументы удобно через xargs, почитайте. Если программа запускается не из скрипта, то, наверно нужно чтоб скрипт возвращал нужные значения (аналог функции, чтоль).
Что касается возврата значений в скрипт - то тоже можно сделать возврат значений из функции и передавать через xargs значения в скрипт, обрабатывать через $1...$n.
А вообще я не знаю, можно ли в баше сделать что-то типа такого:
%varname = %programmname param1 param2, но подозреваю, что можно.

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 5660
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Re: запуск из bash поги на си c параметрами
« Ответ #2 : 12 Февраль 2016, 01:12:30 »
Если «прога на Си» принимает аргументы в командной строке
Код: Bash
  1. responce=$(proga_na_c var1 var2)
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн BorisBritva

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: запуск из bash поги на си c параметрами
« Ответ #3 : 12 Февраль 2016, 01:27:36 »
Если «прога на Си» принимает аргументы в командной строке
Код: Bash
  1. responce=$(proga_na_c var1 var2)

а как запустить?))

Пользователь решил продолжить мысль [time]12 Февраль 2016, 02:50:22[/time]:
как правильно?

так:

responce=$(./proga var1 var2)

source $responce

не выходит

Пользователь решил продолжить мысль [time]12 Февраль 2016, 03:12:21[/time]:
Если «прога на Си» принимает аргументы в командной строке
Код: Bash
  1. responce=$(proga_na_c var1 var2)

а как запустить?))

Пользователь решил продолжить мысль [time]12 Февраль 2016, 02:50:22[/time]:
как правильно?

так:

responce=$(./proga var1 var2)

source $responce

не выходит

Спасибо. Разобрался. перед var1 и var2 должен стоять знак - $
и еще у мня путь не так прописнн был до проги

Пользователь решил продолжить мысль 12 Февраль 2016, 02:13:55:
ну и ну и запускать через echo
« Последнее редактирование: 12 Февраль 2016, 02:13:55 от BorisBritva »

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 5660
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Re: запуск из bash поги на си c параметрами
« Ответ #4 : 12 Февраль 2016, 14:04:59 »
Не надо никаких echo/path_to/proga "$var1" "$var2"
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн BorisBritva

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: запуск из bash поги на си c параметрами
« Ответ #5 : 12 Февраль 2016, 17:01:50 »
Не надо никаких echo/path_to/proga "$var1" "$var2"
Спасибо за ответ.
Но я через echo сразу пишу ответ проги в лог файл

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4073
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: запуск из bash поги на си c параметрами
« Ответ #6 : 12 Февраль 2016, 17:46:19 »
Но я через echo сразу пишу ответ проги в лог файл
Код: Bash
  1. program >> file # дозапись
  2. program > file # перезапись
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

 

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