매개변수 별칭

매개변수 별칭

예를 들어 아래와 같은 일을 할 수 있다면 가능할까요?

alias sd='sudo su - <parameter>'

명령 프롬프트에 아래와 같이 쓰면.

$sd parameter

매개변수로 ID를 주어야 합니다.

반품,

alias chdr='cd /dir1/dir2/dir3/<parameter>'
$chdr parameter

답변1

간단한 정의

alias sd='sudo su -'

쓰기

표준 편차사용자 이름

별칭에 인수를 전달할 수는 없지만 별칭이 확장되면 그 뒤에 오는 단어가 명령에 대한 인수가 됩니다.

대신 사용할 수 있습니다(Sudo 구성이 실행으로 제한되어 보안상의 이점을 가져오지 않는 한).sudo su - usernamesudo -u username -isu

좀 더 복잡한 것을 원한다면 별칭 대신 함수를 사용하세요.

chdr () {
  cd "/dir1/dir2/dir3/$1"
}

함수에 인수를 전달할 수 있습니다. 함수 정의에서는 "$1"첫 번째 매개변수, 두 번째 매개변수 등으로 대체됩니다 "$2". 잊지 마요변수 확장 주위에 큰따옴표 추가.

이 특정한 경우에는 CDPATH쉘이 이 기능을 지원하는지 여부를 원할 것입니다(쉘 매뉴얼을 확인하십시오).

어떤 sudo사용 사례에서든 사용자 이름 외에 인수가 전달되지 않은 경우 로그인 셸을 실행하거나 더 많은 인수가 전달된 경우 지정된 명령을 실행하는 이 함수를 선호할 수 있습니다. $#인수 수로 대체되며 "$@"모든 인수는 변경되지 않은 채 전달됩니다.

sd () {
  if [ $# -eq 1 ]; then
    sudo -i -u "$1"
  else
    sudo -u "$@"
  fi
}

(나는 당신이 Bourne 스타일 쉘(예: sh, ksh(모든 변형), bash, zsh등)을 사용하고 있다고 가정합니다. (T)csh는 다르게 작동합니다.)

답변2

이 시도:alias sd='sudo su - $1'

관련 정보