예를 들어 아래와 같은 일을 할 수 있다면 가능할까요?
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 - username
sudo -u username -i
su
좀 더 복잡한 것을 원한다면 별칭 대신 함수를 사용하세요.
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'