Ми проведемо перенесення з 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.