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


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Передача параметра в скрипт при непростых условиях  (Прочитано 1731 раз)

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

Оффлайн piyavking

  • Автор темы
  • Активист
  • *
  • Сообщений: 760
  • никогда так не было, чтобы никак не было
    • Просмотр профиля
    • Пиявкин
Есть некоторый параметр, который я хочу отправить в bash-скрипт. Если бы это была, так сказать, классика, то я бы, естественно, написал бы что-то вроде

"Параметр=значение /путь/до/скрипта.sh", или, на самый уж пожарный случай, "export Параметр=значение /путь/до/скрипта.sh", чтобы переменная распространилась во все дочерние процессы.

Но скрипт, который запускается, запускается хитрым образом (через симулятор нажатия клавиш. Знаю, что звучит диковато, но так, к сожалению, надо). То есть цепочка выглядит так:

"команда симулятору сымитировать комбинацию клавиш" -> "запущенный этой комбинацией процесс".

При такой ситуации, к сожалению, наследование рвётся, и параметр до своей цели не доходит (проверено). Стало быть, мне нужно запустить какую-то "переменную среды", в которую мог бы посмотреть мой скрипт безо всякого наследования. Писать данные на диск - не вариант.

Подскажите, пожалуйста, пути решения. Спасибо за внимание.
RPI4, awesomeWM, urxvtd, librewolf, vim/gvim, mpv/smplayer, jack, guitarix, lmms, ardour, mednafen, rhvoice, dsda-doom

Оффлайн boa

  • Участник
  • *
  • Сообщений: 104
    • Просмотр профиля
    • Карта рыбака
а "/путь/до/скрипта.sh значение_параметра" тоже не работает?
ну и значение_параметра как $1 обработать в скрипте.

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Можно добавить объявление переменной в .bashrc.
Или, если такой активно применяемый скрипт, то положить его, например, в /usr/bin.

Оффлайн piyavking

  • Автор темы
  • Активист
  • *
  • Сообщений: 760
  • никогда так не было, чтобы никак не было
    • Просмотр профиля
    • Пиявкин
а "/путь/до/скрипта.sh значение_параметра" тоже не работает?
ну и значение_параметра как $1 обработать в скрипте.
Тоже не вариант, к сожалению.
RPI4, awesomeWM, urxvtd, librewolf, vim/gvim, mpv/smplayer, jack, guitarix, lmms, ardour, mednafen, rhvoice, dsda-doom

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
ТС, Вы сами себе заморочили голову.
Сложный путь - это неправильный путь.
В скрипт можно передать несколько параметров.
скрипт параметр1 .... параметрN
« Последнее редактирование: 04 Апреля 2013, 08:18:34 от alexander.pronin »

Оффлайн piyavking

  • Автор темы
  • Активист
  • *
  • Сообщений: 760
  • никогда так не было, чтобы никак не было
    • Просмотр профиля
    • Пиявкин
ТС, Вы сами себе заморочили голову.
Сложный путь - это неправильный путь.
В скрипт можно передать несколько параметров.
скрипт параметр1 .... параметрN

В реализуемой мной задаче передача параметров осложнена - https://forum.ubuntu.ru/index.php?topic=218198.0 , начиная со слов "Теперь поясню, почему номер меню здесь передаётся в"
RPI4, awesomeWM, urxvtd, librewolf, vim/gvim, mpv/smplayer, jack, guitarix, lmms, ardour, mednafen, rhvoice, dsda-doom

appomsk

  • Гость
Цитировать
Стало быть, мне нужно запустить какую-то "переменную среды", в которую мог бы посмотреть мой скрипт безо всякого наследования.

Может быть "по правильному" - через .pam-environment
« Последнее редактирование: 07 Апреля 2013, 20:51:02 от appomsk »

Оффлайн piyavking

  • Автор темы
  • Активист
  • *
  • Сообщений: 760
  • никогда так не было, чтобы никак не было
    • Просмотр профиля
    • Пиявкин
appomsk,
У меня же меняется эта переменная в зависимости от условий запуска. Да и нету у меня в домашней директории такого файлика(
« Последнее редактирование: 08 Апреля 2013, 02:24:57 от regenerat »
RPI4, awesomeWM, urxvtd, librewolf, vim/gvim, mpv/smplayer, jack, guitarix, lmms, ardour, mednafen, rhvoice, dsda-doom

appomsk

  • Гость
Параметры (данные, аргументы, значения) передаются в скрипт тремя стандартными способами:

1. Через переменные среды.
2. Через аргументы запуска команды.
3. Через stdin.

Нестандартно - да это столько, насколько фантазии хватит (ну и конкретные условия запуска). Через файл нельзя - а через сокет, или ФИФО, или в облаках чего-нибудь (а что - элементарно хранить файл конфигурации где-нибудь в Dropbox или Github.)

Ps Это ирония - а в тему - KISS.

Оффлайн piyavking

  • Автор темы
  • Активист
  • *
  • Сообщений: 760
  • никогда так не было, чтобы никак не было
    • Просмотр профиля
    • Пиявкин
appomsk,
переменные среды - так вот мне и нужно определить свою переменную для этого.
аргументы - не вариант
stdin - а вот это интересно, буду пробовать.
RPI4, awesomeWM, urxvtd, librewolf, vim/gvim, mpv/smplayer, jack, guitarix, lmms, ardour, mednafen, rhvoice, dsda-doom

 

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