LINUX.ORG.RU

SHell: sh-скрипт в /usr/bin


0

1

Тут возникла необходимость помещения якобы бинарника в /usr/bin, хочу узнать, кто знает, на сколько это правильно на конкретном примере, содержимое примерно следующее:

#! /bin/sh

cd /opt/foxitreader
./FoxitReader
Все вроде как работает, но правильно ли и возможны ли здесь всякие нюансы, которые надо учесть на будущее?

И правильно ли все расписано, а то вот находил, что подобное, но со строчками на выполнение

exec $CMD $@

и за одно узнать в примере выше «$@» что делает? Ну и что посоветуете, спасибо.

★★★★★

>> но правильно ли

Нет. Для своих самодельных исполняемых файлов принято использовать /usr/local/bin

«$@» что делает?


Это все позиционные параметры.

GotF ★★★★★
()
Ответ на: комментарий от GotF

На счет /usr/local/bin, да, спасибо, понял (просто по аналогии с aur поступил)
--
А вот «позиционные параметры» это как в данном случае понять, что это даст, если сделать "./FoxitReader $@" ?

NK ★★★★★
() автор топика
Ответ на: комментарий от NK

>А вот «позиционные параметры» это как в данном случае понять, что это даст, если сделать "./FoxitReader $@" ?

Это когда твой скрипт вызывается с параметрами (например, «your_script -a -b ccc»), они передаются в твой FoxitReader, и он вызывается с теми же параметрами («./FoxitReader -a -b ccc»).

nnz ★★★★
()

[code] #! /bin/sh

cd /opt/foxitreader ./FoxitReader [/code] 1. не понял - зачем переходить в каталог, когда можно и так указать? 2. вообще для таких целей переназначают переменную PATH в пользовательских скриптах .bashrc

Theli
()
Ответ на: комментарий от nnz

> вызывается с теми же параметрами
При последующем запуске? Т.е. один раз запустим «бин -с» , то ключи сохранятся и достаточно в скрипте написать «бин $@», так что ли?

--
Хорошо, а вот еще на конкретном примере можете пояснить
https://aur.archlinux.org/packages/foxitreader/foxitreader/fr.launcher
там

$CMD «$@»

дает, то что я выше спросил

exit $?

а в $? , что будет добавленно и данные из чего будут исходить?

NK ★★★★★
() автор топика
Ответ на: комментарий от Theli

> зачем переходить в каталог, когда можно и так указать?

Затем, то что в данной программе, если не перейти справка не запустится, которую она так же берет из этого каталога, как и бинарник

1. For Tar package installation, please note that the «fum.fhd» file has to be put into the same directory where the «FoxitReader» file is, so that you can use the help feature in Foxit Reader.

NK ★★★★★
() автор топика
Ответ на: комментарий от NK

>При последующем запуске? Т.е. один раз запустим «бин -с» , то ключи сохранятся и достаточно в скрипте написать «бин $@», так что ли?

Нет, конечно. При последующих запусках ключи не сохраняются.

а в $? , что будет добавленно и данные из чего будут исходить?


В $? будет добавлен код выход предыдущей программы, чтобы твой скрипт вернул его оболочке.

nnz ★★★★
()
Ответ на: комментарий от nnz

На счет «$@» , не так понял я, разобрался, спасибо

ЗЫ надо как-нибудь man bash все-таки осилить

NK ★★★★★
() автор топика
Ответ на: комментарий от ananas

Ничего себе , спасибо, интересная конструкция)

NK ★★★★★
() автор топика
Ответ на: комментарий от ananas

Нет, это не лучше. man exec

#!/bin/sh

cd /opt/foxitreader && exec ./FoxitReader

Никаких exit $? и прочего бреда, вроде лишней инстанции шелла во время работы программы.

anonymous
()
Ответ на: комментарий от ananas

alias не сработает, например, в dmenu или gmrun.

чем тебя так лишний экземпляр шела смущает?


x*N MB зазря занятой ram.

anon_666
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.