별명으로 사용하는 방법?


11

openSUSE 11.3을 사용할 때 이미 여러 개의 별칭이 설정되었습니다. 내가 많이 사용되는 두 있었다 +위해 pushd .-위해 popd. 이제 데비안에서는 두 번째 것을 만드는 방법을 알 수 없습니다. 별명에 대한 명령 옵션 alias -=popd으로 읽으려고합니다 -=. 따옴표 (단일 및 이중 모두)를 따옴표로 묶고 백 슬래시로 시작하려고했지만 오류 메시지가 계속 나타납니다. 어떤 제안?

감사

답변:


12

이 시도:

alias -- -=popd

적어도 나를 위해 일했습니다.

usr@srv % alias -- -=echo
usr@srv % - test
test

고마워, 완벽하게 작동합니다. 무엇을 않습니다 --정확히 무엇입니까?
늑대

4
@Wolf : 대부분의 명령에서 --옵션의 끝을 표시합니다. 그 이후의 모든 것은 논쟁입니다. 예를 들어 logger foo -x bar"foo bar"를 기록 -x하고 옵션으로 logger -- foo -x bar취급하지만 "foo -x bar"메시지에서 일반 단어로 취급합니다.
user1686

1
--명령은 명령 행에서 더 이상 옵션이 따르지 않으며 다음에 오는 -옵션은 옵션으로 해석되지 않음을 나타냅니다 . 따라서 이것은 ;-)cat-
binfalse로

@ grawity 및 @binfalse : 설명 주셔서 감사합니다. 매우 유용합니다! 알고 아주 좋아요.
Wolf

7

다음 bash과 같은 이름의 함수를 작성할 수 있습니다.

+() { pushd "$@"; }
-() { popd "$@"; }

무엇 $@입니까?
Lazer

2
@Lazer : sh 및 bash $@에서 함수 또는 스크립트에 제공된 모든 인수로 확장됩니다. 인용되지 않은 것과 같은 방식으로 작동합니다 $*. 그러나 큰 따옴표 안에 있으면 추가 분할없이 원래 제공된 것과 정확히 동일한 단어로 확장됩니다 .
user1686

@Lazer : $@함수에 전달 된 모든 매개 변수로 확장됩니다 (에 해당 "$1" "$2" ...). 자세한 내용을 보려면 man bash특수 매개 변수를 수행 하고 검색하십시오.
André Paramés
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.