LINUX.ORG.RU

bash source

 ,


1

1

есть скрипт

echo "arg0:$0 arg1:$1"
при использовани
/home/blabla/script 
$0 выводит путь до скрипта но при использовании
source /home/blabla/script
там пишется -bash.
Вопрос как получить путь до скрипта или путь до директории в которой он запускается при использовании source не передавая дополнительные аргументы скрипту?



Последнее исправление: depu (всего исправлений: 1)

source не передавая дополнительные аргументы скрипту?

Аргументы не передавай, делай VAR=/home/blabla/script перед source $VAR

sdio ★★★★★
()

Всё правильно — `source'/`.' выполняется в контексте данного шела. Само сабой в $0 ничего нет, т.к. ничего не запускается.

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

В ksh его нет. Т.е. по-умолчанию подобный скрипт не будет работать ни на одном BSD. Ну и, что проще? Печатать шесть символов или одну точку? ☺ (Да здравстует Perl!)

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от beastie

Зато есть в zsh и tcsh. Разумеется, точка универсальнее и должна использоваться при «#!/bin/sh», но source это точно не башизм :)

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

Вопрос только в том, что было раньше tcsh или bash и кто у кого что «украл». ☺ Под «башизмом» подразумеваю непортабельные раcширения (чаще всего в bash).

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от at

спасибо тебе и все остальным, что учите уму-разуму.

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