Недавно я работал с позиционными параметрами в некоторых скриптах bash и заметил, что -e и -n не передаются в качестве позиционных параметров.Я искал документацию, но не смог понять, почему.Рассмотрим следующие короткие сценарии:
#!/bin/bash
# test.sh
echo $@
echo $1
echo $2
echo $3
echo $4
echo $5
exit
Выполнение команды: # ./test.sh -e -f -c -n -g выводит:
-f -c -n -g
-f
-c
-g
. / Test.sh -n -f -c -e -g выводит:
-f -c -e -g-f
-c
-g
Почему -e и -n не отображаются в "$ @"?-e, кажется, передается как пустой параметр, а -n, чтобы удалить следующую конечную строку.Кроме того, я заметил, что эти параметры учитываются при отображении $ #.Кто-нибудь знает, почему -e и -n ведут себя не так, как другие параметры?