/ / Використання ksh shebang в скрипті bash - bash

Використовуючи ksh shebang в bash script - bash

Ми проведемо перенесення з Unix на Linux. набір -L працює тільки з ksh

Я створив такий файл:

#!/bin/ksh -u

echo $SHELL
typeset -L21 RUN_LOGL="LOG_FILE    "

Зазвичай в Shebang слід вказати правильний інтерпретатор (ksh). Але коли я називаю скрипт бас-способом:

$ . test.ksh

Вихід:

/bin/bash

-bash: typeset: -L: invalid option

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

скрипт є інтерпретатором, а набір -L не приймається. тоді як якщо б я просто зателефонував

$test.ksh

це нормально.

Чи є так, як ми називаємо сценарієм (bash way або ksh way) досить важливим, щоб ігнорувати Shebang?

Спасибі заздалегідь.

Відповіді:

8 для відповіді № 1
. test.ksh

Чи ні виконайте сценарій. це є джерела сценарій.

Отримання сценарію завжди ігнорує Shebang. Shebang використовується тільки тоді, коли є скрипт виконано люблю:

chmod +x test.ksh
./test.ksh

0 для відповіді № 2

Шебанг використовується, лише якщо перекладач раніше не був визначений, наприклад:

sh myScript.sh

завжди буде закликати вас sh, і ігнорує Shebang.