[devel] Q: shell "source" builtin

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Сб Июл 23 03:50:50 MSD 2005


On Sat, Jul 23, 2005 at 03:14:25AM +0400, Alexey Tourbin wrote:
> Как определить, запускается ли скрипт exec'ом или загружается через source?
> Т.е. можно ли внутри скрипта отличить, запускают его или сорсят?
> 
> $ ./script
> $ . ./script

Вообще говоря, нет.

Но в некоторых случаях можно попробовать:

$ cat script.sh 
#!/bin/sh
echo "\$-=$-"
echo "\$0=$0"

$ ./script.sh 
$-=hB
$0=./script.sh

$ . ./script.sh
$-=bhimBH
$0=-bash

Зато можно сделать так, чтобы просто запустить было затруднительно:

$ cat script.sh 
#!/bin/sh /
echo "\$-=$-"
echo "\$0=$0"

$ ./script.sh 
/: /: is a directory


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20050723/14334764/attachment-0001.bin>


Подробная информация о списке рассылки Devel