명령 을 실행하면 ksh
예상대로 비로그인 셸로 실행됩니다. 내가 달성 하고 싶은 것은 ksh
.bash
참고로 bash
options 를 지정하여 로그인 쉘로 호출할 수 있습니다 -l
. 다음은 bash 매뉴얼 페이지에서 발췌한 것입니다:
BASH(1) BASH(1) NAME bash - GNU Bourne-Again SHell . . . OPTIONS . . . -l Make bash act as if it had been invoked as a login shell (see INVOCATION below).
다음은 AIX 서버에서 본 매뉴얼 페이지에 대한 링크입니다.
http://www.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix.cmds3/ksh.htm
파일 처리를 비활성화하는 옵션이 있으므로 $HOME/.profile
(아래 인용문 참조) KornShell을 로그인 셸로 사용하는 방법이 있어야 합니다.
ksh Command Purpose Invokes the Korn shell. . . . Flags . . . -p Disables the processing of the $HOME/.profile file when you use the shell as a login shell, right?
노트:
운영체제는 AIX이고,이게 내가 가진 전부야exec
. 불행하게도 쉘을 다음 문장으로 바꿀 수는 없습니다.
exec -a ksh path/to/ksh
답변1
로그인 쉘을 변경하려면 chsh
(쉘 변경)을 사용할 수 있습니다. ksh
로그인 셸 역할을 하는 인스턴스를 실행하고 싶다면 계속 읽어보세요.
ksh
-
매개변수 0의 첫 번째 문자가 ;이면 로그인 쉘로 작동합니다. ksh
( ksh93
또는 mksh
, 또는 ksh88
pdksh도 아님) zsh
, yash
또는 bash
에 있는 경우
exec -a -ksh /path/to/ksh [optional arguments]
현재 쉘은 로그인 쉘 역할을 하는 Korn 쉘의 인스턴스로 대체됩니다. ( bash
또는 에 있는 경우 더 zsh
짧고 exec -l /path/to/ksh
동일한 효과가 있습니다 .)
이러한 쉘 중 어느 것도 사용할 수 없는 경우 다음을 시도해 볼 수도 있습니다 perl
.
perl -e 'exec {"ksh"} "-ksh"'