will a script have different behaviour depending on what type of shell is executing it.
-
No sentido de que
bash script.sh
eksh script.sh
provavelmente se comportarão de maneira diferente, sim. Comumente, essa diferença será que um deles funciona e um erro, mas há um intervalo de opções. Muitos scripts simples terão o mesmo comportamento em shells comuns, mas scripts mais complexos provavelmente atingirão uma das muitas diferenças entre os idiomas fornecidos por shells diferentes. -
Um script se comportará de maneira diferente dependendo do seu valor de
SHELL
? Apenas se o script invocar$SHELL
, ou testar ou usar seu valor, direta ou indiretamente. Scripts de shell comuns geralmente não, mas podem. -
Um script se comportará de maneira diferente dependendo do shell pai a partir do qual foi invocado? Extremamente raramente - o script teria que fazer um bom trabalho para detectar isso, na medida em que quase teria que ser de propósito.
Eu acho que seu caso de uso está executando ./script.sh
, que é um script sh
, do seu shell interativo, que é ksh
. Se isso está certo, estamos no último caso acima, e o script quase certamente se comportará da mesma maneira como se você estivesse usando qualquer outra casca. O sistema sempre iniciará um novo processo /bin/sh
e informará para executar o script.