Автор Гілка: bash: Ім'я source-аного файлу  (Прочитано 2793 раз)

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

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Чи є якась можливість отримати в bash зі скрипту його ім'я, якщо він виконується через source?

Відсутній Cthulhu

  • Кореспондент
  • ***
  • дописів: 183
  • Карма: +0/-0
Re: bash: Ім'я source-аного файлу
« Відповідей #1 : 2006-11-15 18:33:21 »
$0

Чи я не так зрозумів?

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

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: bash: Ім'я source-аного файлу
« Відповідей #2 : 2006-11-15 21:53:29 »
$0
Чи я не так зрозумів?
Не так зрозуміли.
$ cat >tst.sh <<"EOF"
> echo ">${0}:${*}<"
> return
> EOF
$ source ./tst.sh aa bb
>bash:aa bb<
А мені треба отримати ./tst.sh

Втім, здається, знайшов вихід:
#* getmyname
getmyname ()
{
local retval="$(caller)"
        echo "${retval#* }"
}

echo "Script name: $(getmyname)"
return
Але caller так працює тільки зсередини функції, тому дещо схоже, що це лише хак...
« Змінено: 2006-11-15 22:40:13 від ISBear »

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

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: bash: Ім'я source-аного файлу
« Відповідей #3 : 2006-11-17 23:42:21 »
Ух, shame on me. :#)
Все є в мані. Хоч він і величенький. BASH_SOURCE і таке інше.