У моєму вікні Linux echo $SHELL
результати в /bin/csh
. Тому я припускаю, що мою оболонку за замовчуванням є c-shell. Я намагаюся зрозуміти поведінку сценарію оболонки.
сценарій 1 - сценарій містить -
echo $1 $2 $3
echo $*
echo $argv[1] $argv[2]
$argv[3]
echo $argv[*]
echo $#argv
вихід -
arg1 arg2 arg3
arg1 arg2 arg3 arg4
[1] [2]
./test.sh: line 4: [3]: command not found
[*]
4argv
- Таким чином, c-shell не в змозі виконати останні 4 рядки в сценарії, які повинні бути виконані csh.
Однак - коли я додаю рядок shebang #!/bin/csh
у верхній частині сценарію, він правильно друкує всі результати.
Питання - Чому csh не виконує останні 4 рядки правильно в першому сценарії, і чому я явно повинен включати рядок shebang?