사용 중인 기본 "쉘"을 어떻게 표시합니까? 유닉스의 경우

사용 중인 기본 "쉘"을 어떻게 표시합니까? 유닉스의 경우

사용 중인 기본 "쉘"을 어떻게 표시합니까? UNIX에서는 이 명령이 올바른 ps -p$$입니까, 아니면 다른 방법이 있습니까?

답변1

$$현재 과정입니다.

ps -p$$따라서 현재 프로세스가 표시됩니다(이 경우에는 쉘).

당신은 또한 수 echo $SHELL.

또는

getent passwd | grep ^`whoami`: | awk -F: '{print $NF}'

답변2

기본 쉘을 얻으려면 $SHELL변수를 인쇄하면 됩니다.

$ echo $SHELL
/bin/bash

비록 이것이POSIX가 정의되지 않았습니다., 내가 테스트한 모든 쉘(ash, bash, dash, fish, csh, ksh, tcsh 및 zsh)에서 작동합니다.

해당 명령이 귀하의 환경에서 작동하지 않으면 언제든지 살펴볼 수 있습니다 /etc/passwd. 예를 들어 Linux 시스템(UNIX도 있을 수 있지만 잘 모르겠습니다)에서는 다음 foo과 같이 사용자 쉘이 제공됩니다.

grep '^foo:' /etc/passwd | cut -d: -f7

현재 실행 중인 쉘을 얻으려면 다음을 사용할 수 있습니다.

ps -p $$ | tail -n1 | awk '{print $NF}'

답변3

다른 답변에 추가하겠습니다. 특정 SHELL을 테스트하려면 다음을 사용할 수 있습니다.

  • 큰 타격:echo $BASH
  • 크쉬:echo $KSH_VERSION

이러한 변수는 실행 중인 해당 쉘에 의해 설정됩니다.

관련 정보