Запуск скрипта мышью

Автор: Napilnik Дата: 16.07.2010 00:57
#!/bin/sh

программа  открываемыйфайл  --ключ

Скрипт запускается мышью, но для открываемого_файла (а он лежит в одном каталоге с программой и скриптом) приходится писать полный путь. Как обойтись без полного пути?
Re: Запуск скрипта мышью 16.07.2010 17:05BigAndy ./
Re: Запуск скрипта мышью 16.07.2010 17:48smaharbA echo `dirname $0`

но реально, надо немного усовершенствовать иначе будут копыта
Re: Запуск скрипта мышью 16.07.2010 17:49smaharbA есть самый верный способ узнать путь в любой ситуации для баша и эсаша (и базибокса) - вызвать исключение
Re: Запуск скрипта мышью 16.07.2010 19:37BigAndy В баше для нахождения своего местонахождения используют pwd, а для нахождения файла либо find, либо whreis
Re: Запуск скрипта мышью 16.07.2010 19:49smaharbA БигАнди не пости муть коль не в теме

cat > ~/ppwd << EOF
> #!/bin/bash
>
> pwd
> EOF

cd /usr/share/doc/;bash ~/ppwd

да и перечисленные утилиты имеют слабое отношение и к теме и к башу
Re: Запуск скрипта мышью 16.07.2010 19:56smaharbA Проверять лучше с настоящим эсашем, а не с линуксовой линкой
#!/bin/sh


p=`(echo ${BBB[[}) 2>&1`

echo ${p%%:*}

echo ${p}

# Или без исключения в баше

p=`(echo ${BASH_SOURCE[0]}) 2>&1`

echo ${p%%:*}

echo ${p}
Re: Запуск скрипта мышью 17.07.2010 20:23Napilnik BigAndy Пишет:
-------------------------------------------------------
> ./

А вот не помогает. Анекдот, но в линуксе скрипт запускаемый из консоли и мышкой работает по разному. Текущий каталог куда-то убегает. И нужно прочитать ~4 учебника по башу от начала до конца чтобы где-то случайно наткнуться на нужное. Для решения текущей проблемы мне как-бы проще и быстрее дописать велосипед в программу, но этот способ нельзя перенести на любой случай.


smaharbA Пишет:
-------------------------------------------------------
> Проверять лучше с настоящим эсашем, а не с
> линуксовой линкой
>
> #!/bin/sh
>
>
> p=`(echo ${BBB[[}) 2>&1`
>
> echo ${p%%:*}
>
> echo ${p}
>
> # Или без исключения в баше
>
> p=`(echo ${BASH_SOURCE[0]}) 2>&1`
>
> echo ${p%%:*}
>
> echo ${p}
>

И получаю результат:

./x.sh
./x.sh: line 4: ${BBB[[}: bad substitution
./x.sh
./x.sh
Увы, но я пока так сильно в баш не углубился чтобы собрать из этого работающий код, мне бы коротенький работоспособный примерчик (желательно без использования утилит которых может не быть в лайфсиди и прочих урезанных версиях), а там я скопирую и улучшу не хуже китайцев))))) Вот, например, открытие картинки графредактором, скрипт кидается в папку с открываемой картинкой.
#!/bin/sh
kolourpaint 05.jpg

При запуске скрипта мышью kolourpaint запускается а 05.jpg не находится, вроде бы надо добавить строку
#!/bin/sh
cd "хрен_знает_что"
kolourpaint 05.jpg

Но если бы знал как добиться этого за <=день то не спрашивал бы.
Re: Запуск скрипта мышью 17.07.2010 22:49BigAndy
Цитата:
А вот не помогает. Анекдот, но в линуксе скрипт запускаемый из консоли и мышкой работает по разному.

Нет, ну если вы переоперделите системные переменные или параметры объекта по которому кликаете, то таки да.
Re: Запуск скрипта мышью 18.07.2010 00:04Napilnik >Нет, ну если вы переоперделите системные переменные или параметры объекта по которому кликаете, то таки да.

Вопрос в том, чтобы на любом стандартном линуксе распаковать архив, кликнуть по скрипту и заработало. По ./firefof так кликнуть можно, но пример некорректный - в такую махину хз чего впердолено. Можно сделать по другому: скрипт запускает утилиту, та читает скрипт и выполняет его команду)))))) Но криво и неизвестно 32 или 64 бит нужна утилита, хотя, одна из них не запустится.
Re: Запуск скрипта мышью 18.07.2010 08:49BigAndy Нифига не понятно из того, что написали.
Написал скрипт, возвращающий текущую дирректорию. и по клику и по вызову работают правильно.
Re: Запуск скрипта мышью 18.07.2010 16:34smaharbA Если нужно растолковать (в примере выше вывод ошибки специально для пояснения)

#!/bin/sh


p=`(echo ${BBB[[}) 2>&1`

p=${p%%:*}

d=${p%/*}

echo `cd $d; echo \`pwd\`/\`basename "$p"\``

# Или без исключения в баше

p=`(echo ${BASH_SOURCE[0]}) 2>&1`

p=${p%%:*}

d=${p%/*}

echo `cd $d; echo \`pwd\`/\`basename "$p"\``

Re: Запуск скрипта мышью 18.07.2010 22:31Napilnik BigAndy Пишет:
-------------------------------------------------------
> Нифига не понятно из того, что написали.
> Написал скрипт, возвращающий текущую дирректорию.
> и по клику и по вызову работают правильно.

Теперь осталось всего ничего - установить зоопарк дистров и протестить на них ситуацию с переменными среды. Всю жизнь мечтал поставить убунту.


smaharbA, теперь заработало!
RSS-материал