/ pomocou ksh shebang v bash script - bash

pomocou ksh shebang v bash script - bash

Prevedieme migráciu z UNIX na Linux. typety -L pracuje iba s ksh

Vytvoril som nasledujúci súbor:

#!/bin/ksh -u

echo $SHELL
typeset -L21 RUN_LOGL="LOG_FILE    "

Za normálnych okolností by shebang mal naznačovať správny tlmočník (ksh). Ale keď volám skript v bash spôsobom:

$ . test.ksh

Výstup je:

/bin/bash

-bash: typeset: -L: invalid option

typeset: usage: typeset [-aAfFilrtux] [-p] name[=value] ...

skript je tlmočník v bash spôsobom a typety -L nie je akceptované. zatiaľ čo som jednoducho zavolať

$test.ksh

to je v poriadku.

Je spôsob, akým nazývame skript (bash way alebo ksh cestu), ktorý je dostatočne dôležitý na to, aby ignoroval shebangu?

Vopred ďakujem.

odpovede:

8 pre odpoveď č. 1
. test.ksh

nie spustiť skript. to je sourcing scenár.

Získanie skriptu vždy ignoruje šebang. Shebang sa používa iba vtedy, keď je skript vykonaný Páči sa mi to:

chmod +x test.ksh
./test.ksh

0 pre odpoveď č. 2

Shebang sa používa iba vtedy, ak tlmočník nebol definovaný skôr, napr .:

sh myScript.sh

bude vždy vyvolať vaše sh, a ignoruje šebang.