Имбирь - твой спиритический овощ. Войти !bnw Сегодня Клубы

Задача: узнать имя текущего скрипта, если скрипт не исполняется, а сорсится:

$ cat call.sh
#!/bin/sh
. /tmp/tmp/script.sh
$ cat script.sh
#!/bin/sh
echo $0
echo $BASH_SOURCE
$ bash call.sh
call.sh
/tmp/tmp/script.sh
$ zsh call.sh
/tmp/tmp/script.sh

$ /bin/busybox sh call.sh
call.sh

В общем, хуй поймёт как это кросс-интерпертаторно сделать

#N8VB1X / @hirthwork / 3182 дня назад

cat /proc/$$/{cmdline,exe}, оттуда можно чонить выпарсить
#N8VB1X/35O / @lexszero / 3182 дня назад
@lexszero cmdline вернет имя скрипта, не? сабшелл-то при source не создается и форка не происходит.
#N8VB1X/V6K / @etw --> #N8VB1X/35O / 3182 дня назад
@etw а, я перепутал задачу с обратной.
#N8VB1X/O97 / @lexszero --> #N8VB1X/V6K / 3182 дня назад
в тру-sh нет source
#N8VB1X/XV7 / @xxx-traxer-xxx / 3182 дня назад

@xxx-traxer-xxx вообще говно

#N8VB1X/FQO / @hirthwork --> #N8VB1X/XV7 / 3182 дня назад
@hirthwork туплю, у тебя там '.'
#N8VB1X/9JN / @xxx-traxer-xxx --> #N8VB1X/FQO / 3182 дня назад
@hirthwork да ну. eval $(cat script.sh)
#N8VB1X/5E7 / @lexszero --> #N8VB1X/FQO / 3182 дня назад

@lexszero полный пиздец

#N8VB1X/45S / @hirthwork --> #N8VB1X/5E7 / 3182 дня назад
новый уровень переносимости
#N8VB1X/0AA / @mugiseyebrows / 3182 дня назад

busybox

никак

или так: my-source() { local SHIT="$1"; . "$1"; }

#N8VB1X/VFW / @anonymous / 3182 дня назад
добавь в стандарт //
#N8VB1X/ZIE / @anonymous / 3182 дня назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.