Автор Гілка: Запуск з параметрами  (Прочитано 2694 раз)

Відсутній DrIgor

  • Дописувач
  • **
  • дописів: 53
  • Карма: +0/-0
  • Люблю пінгвінчиків
Кожен день доводиться запускати від імені root з терміналу велику кількість програм, які знаходяться в різних папках. Щоб полегшити роботу я розміщую в директорії /usr/bin посилання на ці програми. Але в деяких з цих програм багато параметрів. Чи є можливість прописати в посиланні ці параметри, щоб потім запускати без них?

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Запуск з параметрами
« Відповідей #1 : 2009-09-21 20:48:14 »
Набагато краще поставити op та написати відповідні правила.
Або замість посилань створювати шел-скрипти.

romi

  • Гість
Re: Запуск з параметрами
« Відповідей #2 : 2009-09-21 20:56:48 »
створювати шел-скрипти.
зробивши їх виконуваними chmox +x
« Змінено: 2009-09-21 20:57:03 від romi »

Відсутній DrIgor

  • Дописувач
  • **
  • дописів: 53
  • Карма: +0/-0
  • Люблю пінгвінчиків
Re: Запуск з параметрами
« Відповідей #3 : 2009-09-21 21:06:18 »
Замість посилань створювати шел-скрипти.
А можна детальніше? На якомусь прикладі.

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Запуск з параметрами
« Відповідей #4 : 2009-09-21 21:18:41 »
Ну, я-то користуюся op:

wl /bin/sh -c '
        if [ $1 = "up" ]; then
                /sbin/ifup eth1
        else
                /sbin/ifdown eth1
        fi';
        users=NET
        help="Bring up or down wi-fi interface"


Але щось на кшталт
#! /bin/sh

/sbin/command static args "${@:-default dynamic args}"

# The End

скрипт буде виконувати
/sbin/command static args default dynamic args
, коли запущений без аргументів і
/sbin/command static args script args
коли з ними.

Відсутній DrIgor

  • Дописувач
  • **
  • дописів: 53
  • Карма: +0/-0
  • Люблю пінгвінчиків
Re: Запуск з параметрами
« Відповідей #5 : 2009-09-21 22:14:31 »
Ну, я-то користуюся op:

wl /bin/sh -c '
        if [ $1 = "up" ]; then
                /sbin/ifup eth1
        else
                /sbin/ifdown eth1
        fi';
        users=NET
        help="Bring up or down wi-fi interface"


Але щось на кшталт
#! /bin/sh

/sbin/command static args "${@:-default dynamic args}"

# The End

скрипт буде виконувати
/sbin/command static args default dynamic args
, коли запущений без аргументів і
/sbin/command static args script args
коли з ними.
Вибачте, але я не зовсім зрозумів. Хотів би розглянути конкретний приклад.
Потрібно запустити програму qwerty яка знаходиться в директорії home/qwer/qwer. Для запуску необхідно було прописати ./qwerty -po 631 start. Що потрібно прописати і де скрипт зберегти?

romi

  • Гість
Re: Запуск з параметрами
« Відповідей #6 : 2009-09-21 22:19:58 »
Вибачте, але я не зовсім зрозумів. Хотів би розглянути конкретний приклад.
Потрібно запустити програму qwerty яка знаходиться в директорії home/qwer/qwer. Для запуску необхідно було прописати ./qwerty -po 631 start. Що потрібно прописати і де скрипт зберегти?
# nano -w /usr/bin/qw
sh  /home/qwer/qwer/qwerty -po 631 start
# chmod +x /usr/bin/qw
Програма буде запускатися командою qw
Так?
« Змінено: 2009-09-21 22:20:47 від romi »

Відсутній DrIgor

  • Дописувач
  • **
  • дописів: 53
  • Карма: +0/-0
  • Люблю пінгвінчиків
Re: Запуск з параметрами
« Відповідей #7 : 2009-09-21 23:01:49 »
Вибачте, але я не зовсім зрозумів. Хотів би розглянути конкретний приклад.
Потрібно запустити програму qwerty яка знаходиться в директорії home/qwer/qwer. Для запуску необхідно було прописати ./qwerty -po 631 start. Що потрібно прописати і де скрипт зберегти?
# nano -w /usr/bin/qw
sh  /home/qwer/qwer/qwerty -po 631 start
# chmod +x /usr/bin/qw
Програма буде запускатися командою qw
Так?
Якщо трішки підправити:
# nano -w /usr/bin/qw
/home/qwer/qwer/qwerty -po 631 start
# chmod +x /usr/bin/qw
То працює! :) Дякую!

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Запуск з параметрами
« Відповідей #8 : 2009-09-21 23:15:17 »
ох, як я міг забути, є ж аліас...
echo "alias qw='/home/qwer/qwer/qwerty -po 631 start'" >> .bashrc

Приклади:
tsubasa:~$ \grep alias .bash_aliases
#alias mc="mc -a"
alias l="ls -CF"
alias la="ls -A"
alias ll="ls -l"
alias ls="ls --color=auto"
alias rm="rm -iv"
alias mv="mv -iv"
alias cp="cp -iv"
alias ln="ln -isv"
alias ..="cd .."
alias grep="grep -nE"
alias diff="diff -u"
alias less="less -P '?f%f ?m(%i/%m) ..?ltрядки %lt-%lb?L/%L. .?bt(%bt-%bB?s/%s.) .?e[кінець] :?pt%pB\%..%t'"
alias shutdown="op shutdown"
alias crossfire='op net "cfclient -mapsize 15x15"'
....
« Змінено: 2009-09-21 23:28:17 від ISBear »

Відсутній DrIgor

  • Дописувач
  • **
  • дописів: 53
  • Карма: +0/-0
  • Люблю пінгвінчиків
Re: Запуск з параметрами
« Відповідей #9 : 2009-09-22 11:30:03 »
Чи є можливість запуску декількох програм однією командою?

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Запуск з параметрами
« Відповідей #10 : 2009-09-22 11:48:39 »
Off-topic:
ех, пане, man bash... і rtfabs...
command1 args; command2 args  (виконує command1, а коли та закінчиться - command2, фактично це просто дві команди, записані в один рядок)
command1 args && command2 args  (те ж саме, але це одна команда, причому command2 виконується лише якщо не сталося помилки під час виконання command1)
command1 args & command2 args &  (запускає command1 у фоновий режим виконання, одразу після цього запускає command2 у фоновий режим виконання, тобто обидві команди працюватимуть паралельно у фоні (командний рядок буде в цей час доступним))
« Змінено: 2009-09-22 11:57:26 від ISBear »

Відсутній DrIgor

  • Дописувач
  • **
  • дописів: 53
  • Карма: +0/-0
  • Люблю пінгвінчиків
Re: Запуск з параметрами
« Відповідей #11 : 2009-09-22 11:59:44 »
Off-topic:
ех, пане, man bash... і rtfabs...
command1 args; command2 args  (виконує command1, а коли та закінчиться - command2, фактично це просто дві команди, записані в один рядок)
command1 args && command2 args  (те ж саме, але це одна команда, причому command2 виконується лише якщо не сталося помилки під час виконання command1)
command1 args & command2 args &  (запускає command1 у фоновий режим виконання, одразу після цього запускає command2 у фоновий режим виконання, тобто обидві команди працюватимуть паралельно у фоні (командний рядок буде в цей час доступним))
Дякую за вичерпну відповідь. Але дозвольте ще одне питаннячко  ;)  Як заставити систему запускати програму при завантаженні?
« Змінено: 2009-09-22 12:00:04 від DrIgor »

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Запуск з параметрами
« Відповідей #12 : 2009-09-22 12:35:07 »
Дякую за вичерпну відповідь. Але дозвольте ще одне питаннячко  ;)  Як заставити систему запускати програму при завантаженні?
Про це написано у довіднику до вашої системи.
Теоретично, окрім засобів, які надає у ваше розпорядження стільничне середовище, можна запхати скрипт або файл desktop до, наприклад, ~/.kde/Autostart (підставити замість kde улюблений строгий і водночас красивий інструмент керування вікнами).
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Михайло Даниленко

  • Гість
Re: Запуск з параметрами
« Відповідей #13 : 2009-09-22 12:39:32 »
Або написати скрипт у /etc/inint.d та просимлінкувати у /etc/rc?.d/, тоді ви зможете додати команди як при завантаженні, так й при вимкненні, або ghjcnjдодати їх до /etc/rc.local.

Михайло Даниленко

  • Гість
Re: Запуск з параметрами
« Відповідей #14 : 2009-09-22 13:03:31 »
Off-topic:
Грр.. От що значить - незвичне оточення
s/inint.d/init.d/
s/ghjcnj/просто /