Unix에서 매개변수 생성

Unix에서 매개변수 생성

유닉스에서 매개변수를 생성하는 방법

다른 사용자의 세션 상태를 보려면 사용자 ID를 매개변수로 받아들이는 쉘 프로그램을 만들어야 합니다.

내 질문은 "사용자 ID를 매개변수로 전달"입니다.

이것은 배쉬를 위한 것입니다.

답변1

셸의 경우 매개변수를 위치 매개변수라고 합니다. 즉, 파일 이름 뒤에 하나씩 삽입하고 삽입된 위치에 따라 각 매개변수에 도달합니다.

위치 인수 0은 항상 스크립트의 (파일) 이름이며, 주어진 인수는 1부터 시작합니다. 따라서 첫 번째 매개변수를 가져오고 $1, 두 번째 매개변수를 가져오는 $2식으로 이를 수행합니다 .

예를 들어:

% foo () { printf '%s\n' "First: "$1" and Second: "$2"" ;}  

% foo spam egg
First: spam and Second: egg

명령문에서 이를 사용하려면 if첫 번째 매개변수만 고려됩니다 $1(다른 매개변수에도 동일하게 적용됨).

if [ "$1" = "foo" ]; then
    ## Dome something
else
    ## Do something else
fi

라는 스크립트에 넣었다고 가정해 보겠습니다 foobar.sh. 이제 스크립트를 실행할 수 있습니다:

./foobar.sh foo
./foobar.sh bar
./foobar.sh blahblah

세 가지 경우의 값은 각각 , , $1입니다 .foobarblahblah

답변2

heemayl의 답변에 대한 귀하의 의견에서 올바르게 추론하면 현재 사용자를 얻는 방법을 찾고 있는 것입니다 $USER.

$USER변수는 현재 사용자를 문자열로 반환합니다.

#!/bin/bash
if [ "$USER" == <something else> ]; then
    #do something IF the current user is equal to whatever string you compare it to
else
    #do something else IF the current user is not equal to whatever string you compare it to
fi

추신: Unix SE는 숙제 질문을 하기에는 적합한 장소가 아닙니다. 타당한 질문 외에도, 어떤 주제에 대해 궁금한 점이 있으면 선생님에게 먼저 물어보는 것이 가장 좋습니다.

관련 정보