Unix에서 여러 단어로 된 명령의 별칭을 지정하는 방법이 있습니까?


11

명령의 별칭을 지정하려고 sudo shutdown하지만 내 .profile작업을 수행 할 수 없습니다 alias "sudo shutdown"="my command". Unix에서 여러 단어로 된 명령의 별칭을 지정하는 다른 방법이 있습니까?


나는이 모든 기술을 시험해 보았고 모두 효과가있었습니다! 모두 감사합니다!
agentbanks217

내가 너무 늦게 별칭으로 '스도 셧다운'을하려는 것을 깨달았으므로 편집 에서 솔루션을 사용해보십시오 .

답변:


19

별칭 이름은 왼쪽에 있으므로 오른쪽에 여러 단어로 된 명령을 사용할 수 있습니다.

alias my_alias="multi worded command"

편집 : 그러나 실제로 여러 단어의 별칭 이름을 원한다면-예를 들어 실제로 "sudo shutdown"을 별칭으로 사용하려면 bash 매뉴얼에서 다음 별칭 기능을 사용 하여이 문제를 해결할 수 있습니다 ) :

A trailing space in  value causes the next word to be checked for
alias substitution when the alias is expanded.

따라서 sudo다른 명령과 함께 사용하고 싶지만 다른 것과 함께 사용할 shutdown수 있다면 다음과 같이 shutdown할 수 있습니다.

alias sudo='sudo '
alias shutdown="echo nope"

이제 sudo anything_else예상대로 작동합니다 (에 대한 별칭이 없다고 가정 anything_else하지만 이전에 작동 하지 않았다고 가정 ). 그러나 해당 문자열과 sudo shutdown동일하며 sudo echo nope해당 문자열을 인쇄합니다.


2
감사합니다. 과소 평가; 나는 한 alias cd="cd "글자 별명과 함께 사용하여 alias X="<directory-with-long-name>"더 쉽게 이동할 수 있습니다.
Luke Davis

동의, 이것은 실제로 매우 유용합니다. 내가 잘못 형 자식 명령이 해결할 수있는 문제가 나를 위해 : alias gti="git "alias lgo="log"
BananaNeil

4

기능을 사용하십시오 :

foo() { if [ "$1" = "bar" ]; then echo "doing something..."; fi; }

else두 번째 매개 변수 가 아닌 경우 원래 명령이 실행되도록 하는 경우 가 있습니다bar .foo() { if [ "$1" = "bar" ]; then echo "doing something..."; else command foo "$@"; fi; }
davidg

2

인용 : Bash : 별명에 공백

배쉬 문서 상태 "거의 모든 목적은, 쉘 기능 별칭 선호하고 있습니다." 다음은 인수가 (only)로 구성된 경우 ls출력을 바꾸고 파이프 하는 쉘 함수입니다 .more-la

ls() {
    if [[ $@ == "-la" ]]; then
        command ls -la | more
    else
        command ls "$@"
    fi
}

원 라이너로 :

ls() { if [[ $@ == "-la" ]]; then command ls -la | more; else command ls "$@"; fi; }

자동 파이프 출력 :

ls -la

1

해결 방법으로 대시를 사용할 수 있습니다. alias sudo-shutdown="your command"


1

실행 파일을 / usr / local / bin (경로에 있는지 확인)에 넣고 실행하려는 명령이 들어있는 것을 선호합니다. 스크립트의 이름은 나타나는 명령입니다. chmod + x / usr / local / bin / your_script를 확인하십시오.

따라서 스크립트는 '종료'라고 할 수 있습니다

파일 종료 내용은 다음과 같습니다.

#!/bin/sh
sudo shutdown

그것은 완전히 새로운 세상을 열어줍니다. 그런 다음 몇 가지 명령이나 스크립트를 가질 수 있습니다.

#!/usr/bin/env python
print "hi"
# more stuff. ....
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.