유닉스에서 매개변수를 생성하는 방법
다른 사용자의 세션 상태를 보려면 사용자 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
입니다 .foo
bar
blahblah
답변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는 숙제 질문을 하기에는 적합한 장소가 아닙니다. 타당한 질문 외에도, 어떤 주제에 대해 궁금한 점이 있으면 선생님에게 먼저 물어보는 것이 가장 좋습니다.