Когда я выпускаю:
bash -l -c "./test" subshell действительно запускается как оболочка входа в систему, но в случае:
bash -c "./test1" -l родительская оболочка (оболочка, в которой я запускаю команду), похоже, игнорирует -lпараметр, а подоболочка не запускается как оболочка входа в систему.
Если я прав, причина в том, что порядок опций bashкоманды уместен, и в этом случае -lопция должна быть раньше -c. Я прав?
Ваш ответ кажется неадекватным на вопрос. (1) Существует соглашение, которое вы упомянули, но оно применяется к именам файлов, которые * "свободны" *, т.е. не связаны с предыдущим параметром;
bash -cтребует * что-то *. (2) Обязательным аргументом дляbash -cможет быть не файл (это вообще команда), и поведение будет таким же, это тем более, что соглашение здесь не применяется. (3) Сравнитеgrep -f. Требуется имя файла и * не * влияет на параметры, которые следуют. На самом деле это более распространенное поведение, иbash -cдовольно уникален. (4) Вы не ответили на вопрос.