Script shell de origem / executável na linguagem de shell POSIX

1

O que é uma boa maneira POSIX para fazer um script executável (uma função do script é executada) e in-sourcable com o comando . (nada acontece, exceto (pelo menos) 1 função se torna disponível?

Eu tentei:

src.sh:

#!/bin/sh -eu
FILENAME=src.sh
f() { echo hello from f; }
case $0 in ($FILENAME|*/$FILENAME) f "$@";; esac

e testamos com:

( PATH=$PWD:$PATH; src.sh; . src.sh ; echo ===; f )

Isso parece funcionar como esperado no Cygwin, no MacOS e no Linux.

Alguma sugestão sobre como melhorá-lo?

    
por PSkocik 13.09.2018 / 21:07

0 respostas

Tags